test_class.declarator: builder
test_class.modifier: private static
test_class.original_string: private static IChemObjectBuilder builder;
test_class.type: IChemObjectBuilder
test_class.var_name: builder
test_class.file: tool/formula/src/test/java/org/openscience/cdk/formula/rules/ElementRuleTest.java
test_class.identifier: ElementRuleTest
test_class.superclass: extends FormulaRuleTest
test_case.body: @Test
      public void testDefaultValidTrue() throws Exception {
  
          IRule rule = new ElementRule();
  
          IMolecularFormula formula = new MolecularFormula();
          formula.addIsotope(builder.newInstance(IIsotope.class, "C"), 2);
          formula.addIsotope(builder.newInstance(IIsotope.class, "H"), 6);
  
          Assert.assertEquals(1.0, rule.validate(formula), 0.0001);
      }
test_case.class_method_signature: ElementRuleTest.testDefaultValidTrue()
test_case.full_signature: @Test public void testDefaultValidTrue()
test_case.identifier: testDefaultValidTrue
test_case.invocations: addIsotope newInstance addIsotope newInstance assertEquals validate
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testDefaultValidTrue()
focal_class.declarator: logger = LoggingToolFactory.createLoggingTool(ElementRule.class)
focal_class.modifier: private static
focal_class.original_string: private static ILoggingTool   logger = LoggingToolFactory.createLoggingTool(ElementRule.class);
focal_class.type: ILoggingTool
focal_class.var_name: logger
focal_class.declarator: mfRange
focal_class.modifier: private
focal_class.original_string: private MolecularFormulaRange mfRange;
focal_class.type: MolecularFormulaRange
focal_class.var_name: mfRange
focal_class.file: tool/formula/src/main/java/org/openscience/cdk/formula/rules/ElementRule.java
focal_class.identifier: ElementRule
focal_class.interfaces: implements IRule
focal_class.class_method_signature: ElementRule.ElementRule()
focal_class.full_signature: public  ElementRule()
focal_class.identifier: ElementRule
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.signature:  ElementRule()
focal_class.class_method_signature: ElementRule.setParameters(Object[] params)
focal_class.full_signature: @Override public void setParameters(Object[] params)
focal_class.identifier: setParameters
focal_class.modifiers: @Override public
focal_class.parameters: (Object[] params)
focal_class.return: void
focal_class.signature: void setParameters(Object[] params)
focal_class.class_method_signature: ElementRule.getParameters()
focal_class.full_signature: @Override public Object[] getParameters()
focal_class.identifier: getParameters
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Object[]
focal_class.signature: Object[] getParameters()
focal_class.class_method_signature: ElementRule.validate(IMolecularFormula formula)
focal_class.full_signature: @Override public double validate(IMolecularFormula formula)
focal_class.identifier: validate
focal_class.modifiers: @Override public
focal_class.parameters: (IMolecularFormula formula)
focal_class.return: double
focal_class.signature: double validate(IMolecularFormula formula)
focal_class.class_method_signature: ElementRule.ensureDefaultOccurElements(IChemObjectBuilder builder)
focal_class.full_signature: private void ensureDefaultOccurElements(IChemObjectBuilder builder)
focal_class.identifier: ensureDefaultOccurElements
focal_class.modifiers: private
focal_class.parameters: (IChemObjectBuilder builder)
focal_class.return: void
focal_class.signature: void ensureDefaultOccurElements(IChemObjectBuilder builder)
focal_method.body: @Override
      public double validate(IMolecularFormula formula) throws CDKException {
          logger.info("Start validation of ", formula);
          ensureDefaultOccurElements(formula.getBuilder());
  
          double isValid = 1.0;
          Iterator<IElement> itElem = MolecularFormulaManipulator.elements(formula).iterator();
          while (itElem.hasNext()) {
              IElement element = itElem.next();
              int occur = MolecularFormulaManipulator.getElementCount(formula, element);
              IIsotope elemIsotope = formula.getBuilder().newInstance(IIsotope.class, element.getSymbol());
              if ((occur < mfRange.getIsotopeCountMin(elemIsotope)) || (occur > mfRange.getIsotopeCountMax(elemIsotope))) {
                  isValid = 0.0;
                  break;
              }
          }
  
          return isValid;
      }
focal_method.class_method_signature: ElementRule.validate(IMolecularFormula formula)
focal_method.full_signature: @Override public double validate(IMolecularFormula formula)
focal_method.identifier: validate
focal_method.invocations: info ensureDefaultOccurElements getBuilder iterator elements hasNext next getElementCount newInstance getBuilder getSymbol getIsotopeCountMin getIsotopeCountMax
focal_method.modifiers: @Override public
focal_method.parameters: (IMolecularFormula formula)
focal_method.return: double
focal_method.signature: double validate(IMolecularFormula formula)