1 package org.openscience.cdk.qsar.descriptors.atomic; 2 3 import java.io.InputStream; 4 5 import org.junit.Assert; 6 import org.junit.Before; 7 import org.junit.Test; 8 import org.openscience.cdk.Atom; 9 import org.openscience.cdk.AtomContainer; 10 import org.openscience.cdk.ChemFile; 11 import org.openscience.cdk.ChemObject; 12 import org.openscience.cdk.interfaces.IAtom; 13 import org.openscience.cdk.interfaces.IAtomContainer; 14 import org.openscience.cdk.interfaces.IAtomContainerSet; 15 import org.openscience.cdk.interfaces.IChemModel; 16 import org.openscience.cdk.interfaces.IChemSequence; 17 import org.openscience.cdk.io.IChemObjectReader.Mode; 18 import org.openscience.cdk.io.MDLV2000Reader; 19 import org.openscience.cdk.qsar.DescriptorValue; 20 import org.openscience.cdk.qsar.result.DoubleArrayResult; 21 import org.openscience.cdk.qsar.result.IDescriptorResult; 22 23 /** 24 * @cdk.module test-qsaratomic 25 */ 26 public class RDFProtonDescriptor_G3RTest extends AtomicDescriptorTest { 27 RDFProtonDescriptor_G3RTest()28 public RDFProtonDescriptor_G3RTest() {} 29 30 @Before setUp()31 public void setUp() throws Exception { 32 setDescriptor(RDFProtonDescriptor_G3R.class); 33 } 34 35 @Test testExample1()36 public void testExample1() throws Exception { 37 //firstly read file to molecule 38 String filename = "data/mdl/hydroxyamino.mol"; 39 InputStream ins = this.getClass().getClassLoader().getResourceAsStream(filename); 40 MDLV2000Reader reader = new MDLV2000Reader(ins, Mode.STRICT); 41 ChemFile chemFile = (ChemFile) reader.read((ChemObject) new ChemFile()); 42 IChemSequence seq = chemFile.getChemSequence(0); 43 IChemModel model = seq.getChemModel(0); 44 IAtomContainerSet som = model.getMoleculeSet(); 45 IAtomContainer mol = som.getAtomContainer(0); 46 47 for (int i = 0; i < mol.getAtomCount(); i++) { 48 // System.out.println("Atom: " + mol.getAtom(i).getSymbol()); 49 if (mol.getAtom(i).getSymbol().equals("H")) { 50 //secondly perform calculation on it. 51 RDFProtonDescriptor_G3R descriptor = new RDFProtonDescriptor_G3R(); 52 DescriptorValue dv = descriptor.calculate(mol.getAtom(i), mol); 53 IDescriptorResult result = dv.getValue(); 54 // System.out.println("array: " + result.toString()); 55 Assert.assertNotNull(result); 56 Assert.assertEquals(dv.getNames().length, result.length()); 57 } 58 59 } 60 } 61 62 @Test testReturnsNaNForNonHydrogen()63 public void testReturnsNaNForNonHydrogen() throws Exception { 64 IAtomContainer mol = new AtomContainer(); 65 IAtom atom = new Atom("O"); 66 mol.addAtom(atom); 67 DescriptorValue dv = descriptor.calculate(atom, mol); 68 IDescriptorResult result = dv.getValue(); 69 Assert.assertNotNull(result); 70 Assert.assertTrue(result instanceof DoubleArrayResult); 71 DoubleArrayResult dResult = (DoubleArrayResult) result; 72 for (int i = 0; i < result.length(); i++) { 73 Assert.assertEquals(Double.NaN, dResult.get(i), 0.000001); 74 } 75 } 76 77 } 78