static public Object toObject(IDescriptorResult result, int index) throws DescriptorException { if(result instanceof DoubleArrayResult){ double doubleValue = ((DoubleArrayResult)result).get(index); validateValue(doubleValue); return Double.valueOf(doubleValue); } else if(result instanceof IntegerArrayResult){ int intValue = ((IntegerArrayResult)result).get(index); return Integer.valueOf(intValue); } throw new DescriptorException(String.valueOf(result)); }
/** * put in increasing order the ArrayList * * @param array The ArrayList to order * @return The DoubleArrayResult ordered */ private DoubleArrayResult arrangingEnergy(ArrayList<Double> array) { DoubleArrayResult results = new DoubleArrayResult(); int count = array.size(); for (int i = 0; i < count; i++) { double min = array.get(0); int pos = 0; for (int j = 0; j < array.size(); j++) { double value = array.get(j); if (value < min) { min = value; pos = j; } } array.remove(pos); results.add(min); } return results; }
@Test public void testGet_int() { DoubleArrayResult result = new DoubleArrayResult(); Assert.assertNotNull(result); Assert.assertEquals("", result.toString()); result.add(5); Assert.assertEquals(5, result.get(0), 0.000001); result.add(2); Assert.assertEquals(5, result.get(0), 0.000001); Assert.assertEquals(2, result.get(1), 0.000001); result.add(-1); Assert.assertEquals(5, result.get(0), 0.000001); Assert.assertEquals(2, result.get(1), 0.000001); Assert.assertEquals(-1, result.get(2), 0.000001); }
@Test public void testSize() { DoubleArrayResult result = new DoubleArrayResult(); Assert.assertNotNull(result); Assert.assertEquals(0, result.length()); result.add(5); Assert.assertEquals(1, result.length()); }
@Test public void testToString() { DoubleArrayResult result = new DoubleArrayResult(); Assert.assertNotNull(result); Assert.assertEquals("", result.toString()); result.add(5); Assert.assertEquals("5.0", result.toString()); result.add(2); Assert.assertEquals("5.0,2.0", result.toString()); result.add(-3); Assert.assertEquals("5.0,2.0,-3.0", result.toString()); }
@Test public void testDoubleArrayResult() { DoubleArrayResult result = new DoubleArrayResult(); Assert.assertNotNull(result); Assert.assertEquals(0, result.length()); }
@Test public void testTaeAminoAcidDescriptor() throws ClassNotFoundException, CDKException, Exception { IBioPolymer pepseq = ProteinBuilderTool.createProtein("ACDEFGH", SilentChemObjectBuilder.getInstance()); DescriptorValue result = descriptor.calculate(pepseq); DoubleArrayResult dar = (DoubleArrayResult) result.getValue(); Assert.assertEquals(147, dar.length()); } }
@Test public void testDoubleArrayResult_int() { DoubleArrayResult result = new DoubleArrayResult(5); Assert.assertNotNull(result); Assert.assertEquals(5, result.length()); }
private DescriptorValue getDummyDescriptorValue(Exception e) { DoubleArrayResult results = new DoubleArrayResult(); results.add(Double.NaN); results.add(Double.NaN); results.add(Double.NaN); return new DescriptorValue(getSpecification(), getParameterNames(), getParameters(), results, getDescriptorNames(), e); }
@Test public void testMomentOfInertia2() throws ClassNotFoundException, CDKException, java.lang.Exception { String filename = "data/hin/momi2.hin"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); ISimpleChemObjectReader reader = new HINReader(ins); ChemFile content = (ChemFile) reader.read((ChemObject) new ChemFile()); List cList = ChemFileManipulator.getAllAtomContainers(content); IAtomContainer ac = (IAtomContainer) cList.get(0); DoubleArrayResult retval = (DoubleArrayResult) descriptor.calculate(ac).getValue(); Assert.assertEquals(10068.419360, retval.get(0), 0.00001); Assert.assertEquals(9731.078356, retval.get(1), 0.00001); Assert.assertEquals(773.612799, retval.get(2), 0.00001); Assert.assertEquals(1.034666, retval.get(3), 0.00001); Assert.assertEquals(13.014804, retval.get(4), 0.00001); Assert.assertEquals(12.578745, retval.get(5), 0.00001); Assert.assertEquals(8.2966226, retval.get(6), 0.00001); }
@Test public void testChargedMolecule() throws Exception { String filename = "data/mdl/cpsa-charged.sdf"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); ISimpleChemObjectReader reader = new MDLV2000Reader(ins); ChemFile content = (ChemFile) reader.read((ChemObject) new ChemFile()); List cList = ChemFileManipulator.getAllAtomContainers(content); IAtomContainer ac = (IAtomContainer) cList.get(0); DoubleArrayResult retval = (DoubleArrayResult) descriptor.calculate(ac).getValue(); int ndesc = retval.length(); for (int i = 0; i < ndesc; i++) Assert.assertTrue(retval.get(i) != Double.NaN); }
private DescriptorValue getDummyDescriptorValue(Exception e) { DoubleArrayResult results = new DoubleArrayResult(); results.add(Double.NaN); results.add(Double.NaN); results.add(Double.NaN); return new DescriptorValue(getSpecification(), getParameterNames(), getParameters(), results, getDescriptorNames(), e); }
@Test public void testMomentOfInertia1() throws ClassNotFoundException, CDKException, java.lang.Exception { String filename = "data/hin/gravindex.hin"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); ISimpleChemObjectReader reader = new HINReader(ins); ChemFile content = (ChemFile) reader.read((ChemObject) new ChemFile()); List cList = ChemFileManipulator.getAllAtomContainers(content); IAtomContainer ac = (IAtomContainer) cList.get(0); DoubleArrayResult retval = (DoubleArrayResult) descriptor.calculate(ac).getValue(); Assert.assertEquals(1820.692519, retval.get(0), 0.00001); Assert.assertEquals(1274.532522, retval.get(1), 0.00001); Assert.assertEquals(979.210423, retval.get(2), 0.00001); Assert.assertEquals(1.428517, retval.get(3), 0.00001); Assert.assertEquals(1.859347, retval.get(4), 0.00001); Assert.assertEquals(1.301592, retval.get(5), 0.00001); Assert.assertEquals(5.411195, retval.get(6), 0.00001); }
@Test public void testUnChargedMolecule() throws Exception { String filename = "data/mdl/cpsa-uncharged.sdf"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); ISimpleChemObjectReader reader = new MDLV2000Reader(ins); ChemFile content = (ChemFile) reader.read((ChemObject) new ChemFile()); List cList = ChemFileManipulator.getAllAtomContainers(content); IAtomContainer ac = (IAtomContainer) cList.get(0); DoubleArrayResult retval = (DoubleArrayResult) descriptor.calculate(ac).getValue(); int ndesc = retval.length(); for (int i = 0; i < ndesc; i++) Assert.assertTrue(retval.get(i) != Double.NaN); } }
private IDescriptorResult newDescriptorResultArray(String descriptorValue) { IDescriptorResult result = null; if ("xsd:double".equals(currentDescriptorDataType)) { result = new DoubleArrayResult(); StringTokenizer tokenizer = new StringTokenizer(descriptorValue); while (tokenizer.hasMoreElements()) { ((DoubleArrayResult) result).add(Double.parseDouble(tokenizer.nextToken())); } } else if ("xsd:integer".equals(currentDescriptorDataType)) { result = new IntegerArrayResult(); StringTokenizer tokenizer = new StringTokenizer(descriptorValue); while (tokenizer.hasMoreElements()) { ((IntegerArrayResult) result).add(Integer.parseInt(tokenizer.nextToken())); } } return result; } }
@Test public void testGravitationalIndex() throws ClassNotFoundException, CDKException, java.lang.Exception { String filename = "data/hin/gravindex.hin"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); ISimpleChemObjectReader reader = new HINReader(ins); ChemFile content = (ChemFile) reader.read((ChemObject) new ChemFile()); List cList = ChemFileManipulator.getAllAtomContainers(content); IAtomContainer ac = (IAtomContainer) cList.get(0); DoubleArrayResult retval = (DoubleArrayResult) descriptor.calculate(ac).getValue(); Assert.assertEquals(1756.5060703860984, retval.get(0), 0.00000001); Assert.assertEquals(41.91069159994975, retval.get(1), 0.00000001); Assert.assertEquals(12.06562671430088, retval.get(2), 0.00000001); Assert.assertEquals(1976.6432599699767, retval.get(3), 0.00000001); Assert.assertEquals(44.45945636161082, retval.get(4), 0.00000001); Assert.assertEquals(12.549972243701887, retval.get(5), 0.00000001); Assert.assertEquals(4333.097373073368, retval.get(6), 0.00000001); Assert.assertEquals(65.82626658920714, retval.get(7), 0.00000001); Assert.assertEquals(16.302948232909483, retval.get(8), 0.00000001); } }
@Test public void testExtraEigenvalues() throws Exception { String filename = "data/hin/gravindex.hin"; InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); ISimpleChemObjectReader reader = new HINReader(ins); ChemFile content = (ChemFile) reader.read((ChemObject) new ChemFile()); List cList = ChemFileManipulator.getAllAtomContainers(content); IAtomContainer ac = (IAtomContainer) cList.get(0); Object[] params = new Object[3]; params[0] = 0; params[1] = 25; params[2] = true; descriptor.setParameters(params); DescriptorValue descriptorValue = descriptor.calculate(ac); DoubleArrayResult retval = (DoubleArrayResult) descriptorValue.getValue(); int nheavy = 20; Assert.assertEquals(75, retval.length()); for (int i = 0; i < nheavy; i++) Assert.assertTrue(retval.get(i) != Double.NaN); for (int i = nheavy; i < nheavy + 5; i++) { Assert.assertTrue("Extra eigenvalue should have been NaN", Double.isNaN(retval.get(i))); } }
private IDescriptorResult newDescriptorResultArray(String descriptorValue) { IDescriptorResult result = null; if ("xsd:double".equals(currentDescriptorDataType)) { result = new DoubleArrayResult(); StringTokenizer tokenizer = new StringTokenizer(descriptorValue); while (tokenizer.hasMoreElements()) { ((DoubleArrayResult) result).add(Double.parseDouble(tokenizer.nextToken())); } } else if ("xsd:integer".equals(currentDescriptorDataType)) { result = new IntegerArrayResult(); StringTokenizer tokenizer = new StringTokenizer(descriptorValue); while (tokenizer.hasMoreElements()) { ((IntegerArrayResult) result).add(Integer.parseInt(tokenizer.nextToken())); } } return result; } }