VABCDescriptor extends AbstractMolecularDescriptor implements IMolecularDescriptor { @Override public DescriptorValue calculate(IAtomContainer atomContainer) { double volume; try { volume = VABCVolume.calculate(clone(atomContainer)); } catch (CDKException exception) { return getDummyDescriptorValue(exception); } return new DescriptorValue(getSpecification(), getParameterNames(), getParameters(), new DoubleResult(volume), getDescriptorNames()); }  @Override DescriptorSpecification getSpecification(); @Override void setParameters(Object[] params); @Override Object[] getParameters(); @Override String[] getDescriptorNames(); @Override DescriptorValue calculate(IAtomContainer atomContainer); @Override IDescriptorResult getDescriptorResultType(); @Override String[] getParameterNames(); @Override Object getParameterType(String name);  }
@Test public void testIronChloride() throws InvalidSmilesException, CDKException { IAtomContainer ironChloride = new SmilesParser(SilentChemObjectBuilder.getInstance()).parseSmiles("Cl[Fe]Cl"); Assert.assertEquals(Double.NaN, ((DoubleResult) descriptor.calculate(ironChloride).getValue()).doubleValue(), 0.01); }