📄 partialpichargedescriptortest.java
字号:
public void testPartialPiChargeDescriptoCharge_2() throws ClassNotFoundException, CDKException, java.lang.Exception { double [] testResult={-0.0822,0.02,0.0,0.0423,0.0,0.02,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};/* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ double [] testResultMy={-0.1090,0.04283,-0.0139,0.05130,-0.01397,0.042839,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0};/* my */ IAtomicDescriptor descriptor = new PartialPiChargeDescriptor(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("n1ccccc1"); HydrogenAdder hAdder = new HydrogenAdder(); hAdder.addExplicitHydrogensToSatisfyValency(mol); LonePairElectronChecker lpcheck = new LonePairElectronChecker(); lpcheck.newSaturate(mol); for (int i = 0 ; i < mol.getAtomCount(); i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i),mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+"-result: "+result); if(testResultMy[i] == 0.0) assertTrue(result == 0.0); else { assertTrue(result != 0.0); assertEquals(getSign(testResultMy[i]),getSign(result), 0.00001); } assertEquals(testResultMy[i],result, 0.03); } } /** * A unit test for JUnit. This molecule break. With PETRA as well. */ public void testPartialPiChargeDescriptoCharge_3() throws ClassNotFoundException, CDKException, java.lang.Exception { double [] testResult={-0.0379,-0.0032,0.0,-0.0078,0.0,0.0488,0.0,0.0};/* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ IAtomicDescriptor descriptor = new PartialPiChargeDescriptor(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("O=C([H])[C+]([H])[C-]([H])[H]"); LonePairElectronChecker lpcheck = new LonePairElectronChecker(); lpcheck.newSaturate(mol); for (int i = 0 ; i < mol.getAtomCount(); i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i),mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+"-result: "+result); if(i == 0 || i == 1 || i == 3)/*not get same signus like Gasteiger*/ continue; if(testResult[i] == 0.0) assertTrue(result == 0.0); else { assertTrue(result != 0.0); assertEquals(getSign(testResult[i]),getSign(result), 0.00001); } assertEquals(testResult[i],result, 0.15); } } /** * A unit test for JUnit. This molecule break. With PETRA as well. */ public void testPartialPiChargeDescripto4() throws ClassNotFoundException, CDKException, java.lang.Exception { double [] testResult={0.0};/* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ IAtomicDescriptor descriptor = new PartialPiChargeDescriptor(); SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("CCOCCCO"); HydrogenAdder hAdder = new HydrogenAdder(); hAdder.addExplicitHydrogensToSatisfyValency(mol); LonePairElectronChecker lpcheck = new LonePairElectronChecker(); lpcheck.newSaturate(mol); for (int i = 0 ; i < mol.getAtomCount(); i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i),mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+"-result: "+result); assertEquals(testResult[0],result, 0.0001); } } /** * A unit test for JUnit with */ public void testArticle1() throws ClassNotFoundException, CDKException, java.lang.Exception { IAtomicDescriptor descriptor = new PartialPiChargeDescriptor(); double[] testResult = {0.0,0.0216,-0.1644,0.1428,0.0,0.0,0.0,0.0,0.0,0.0}; /* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("CC(=O)N"); HydrogenAdder hAdder = new HydrogenAdder(); hAdder.addExplicitHydrogensToSatisfyValency(mol); Object[] object = {new Integer(6),new Boolean(true)}; descriptor.setParameters(object); LonePairElectronChecker lpcheck = new LonePairElectronChecker(); lpcheck.newSaturate(mol); for (int i = 0 ; i < mol.getAtomCount() ; i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i), mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+",result: "+result); if(testResult[i] == 0.0) assertTrue(result == 0.0); else { assertTrue(result != 0.0); assertEquals(getSign(testResult[i]),getSign(result), 0.00001); } assertEquals(testResult[i],result,0.1); } } /** * A unit test for JUnit with FC(=O)CCc1cccc(F)c1(C) */ public void testSousa() throws ClassNotFoundException, CDKException, java.lang.Exception { IAtomicDescriptor descriptor = new PartialPiChargeDescriptor(); double[] testResult = {0.0914,0.0193,-0.1107,0.0,0.0,0.0,-0.0063,0.0,-0.0101,0.0,0.0262,-0.0098,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; /* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("FC(=O)CCc1cccc(F)c1(C)"); HydrogenAdder hAdder = new HydrogenAdder(); hAdder.addExplicitHydrogensToSatisfyValency(mol); Object[] object = {new Integer(6),new Boolean(true)}; descriptor.setParameters(object); LonePairElectronChecker lpcheck = new LonePairElectronChecker(); lpcheck.newSaturate(mol); for (int i = 0 ; i < mol.getAtomCount() ; i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i), mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+",result: "+result); if(testResult[i] == 0.0) assertTrue(result == 0.0); else { assertTrue(result != 0.0); assertEquals(getSign(testResult[i]),getSign(result), 0.00001); } assertEquals(testResult[i],result,0.07); } } /** * A unit test for JUnit with [H]C([H])=C([H])C([H])([H])C([H])=O */ public void testBondNotConjugated() throws ClassNotFoundException, CDKException, java.lang.Exception { IAtomicDescriptor descriptor = new PartialPiChargeDescriptor(); double[] testResult = {0.0,0.0004,0.0,-0.0004,0.0,0.0,0.0,0.0,0.0277,0.0,-0.0277}; /* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("[H]C([H])=C([H])C([H])([H])C([H])=O"); Object[] object = {new Integer(6),new Boolean(true)}; descriptor.setParameters(object); LonePairElectronChecker lpcheck = new LonePairElectronChecker(); lpcheck.newSaturate(mol); for (int i = 0 ; i < mol.getAtomCount() ; i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i), mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+",result: "+result); if(i == 1 || i == 3)/*not get same signus like Gasteiger*/ continue; if(testResult[i] == 0.0) assertTrue(result == 0.0); else { assertTrue(result != 0.0); assertEquals(getSign(testResult[i]),getSign(result), 0.00001); } assertEquals(testResult[i],result,0.02); } } /** * A unit test for JUnit with [H]C([H])=C([H])C([H])([H])C([H])=O */ public void testBondNotConjugated1() throws ClassNotFoundException, CDKException, java.lang.Exception { IAtomicDescriptor descriptor = new PartialPiChargeDescriptor(); double[] testResult = {0.0,-0.0009,0.0,0.0009,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0}; /* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("[H]C([H])=C([H])C([H])([H])[H]"); Object[] object = {new Integer(6),new Boolean(true)}; descriptor.setParameters(object); LonePairElectronChecker lpcheck = new LonePairElectronChecker(); lpcheck.newSaturate(mol); for (int i = 0 ; i < mol.getAtomCount() ; i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i), mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+",result: "+result); if(i == 8)/*not get same signus like Gasteiger*/ continue; if(testResult[i] == 0.0) assertTrue(result == 0.0); else { assertTrue(result != 0.0); assertEquals(getSign(testResult[i]),getSign(result), 0.00001); } assertEquals(testResult[i],result,0.02); } } /** * A unit test for JUnit with [H]C([H])=C([H])[C+]([H])[H] */ public void testBondNotConjugated2() throws ClassNotFoundException, CDKException, java.lang.Exception { IAtomicDescriptor descriptor = new PartialPiChargeDescriptor(); double[] testResult = {0.0,0.25,0.0,0.0,0.0,0.25,0.0,0.0,0.0,0.0,0.0,0.0,}; /* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("[H]C([H])=C([H])[C+]([H])[H]"); Object[] object = {new Integer(6),new Boolean(true)}; descriptor.setParameters(object); LonePairElectronChecker lpcheck = new LonePairElectronChecker(); lpcheck.newSaturate(mol); for (int i = 0 ; i < mol.getAtomCount() ; i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i), mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+",result: "+result); if(i == 5)/*not get same signus like Gasteiger*/ continue; if(testResult[i] == 0.0) assertTrue(result == 0.0); else { assertTrue(result != 0.0); assertEquals(getSign(testResult[i]),getSign(result), 0.00001); } assertEquals(testResult[i],result,0.21); } } /** * A unit test for JUnit with [C]=C=C=O */ public void testWithRadical() throws ClassNotFoundException, CDKException, java.lang.Exception { IAtomicDescriptor descriptor = new PartialPiChargeDescriptor(); double[] testResult = {0.0,0.25,0.0,0.0,0.0,0.25,0.0,0.0,0.0,0.0,0.0,0.0,}; /* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("[C]=C=C=O");// mol.addElectronContainer(new SingleElectron(mol.getAtom(0))); mol.addLonePair(new LonePair(mol.getAtom(3))); Object[] object = {new Integer(6),new Boolean(false)}; descriptor.setParameters(object); for (int i = 0 ; i < mol.getAtomCount() ; i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i), mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+",result: "+result); if(i == 1 || i == 2 || i == 3)/*not get same signus like Gasteiger*/ continue; if(testResult[i] == 0.0) assertTrue(result == 0.0); else { assertTrue(result != 0.0); assertEquals(getSign(testResult[i]),getSign(result), 0.00001); } assertEquals(testResult[i],result,0.21); } } /** * A unit test for JUnit with c1ccc(cc1)n3c4ccccc4(c2ccccc23) */ public void testLangCalculation() throws ClassNotFoundException, CDKException, java.lang.Exception { IAtomicDescriptor descriptor = new PartialPiChargeDescriptor();// double[] testResult = {0.0,0.25,0.0,0.0,0.0,0.25,0.0,0.0,0.0,0.0,0.0,0.0,}; /* from Petra online: http://www2.chemie.uni-erlangen.de/services/petra/smiles.phtml*/ SmilesParser sp = new SmilesParser(DefaultChemObjectBuilder.getInstance()); IMolecule mol = sp.parseSmiles("c1ccc(cc1)n3c4ccccc4(c2ccccc23)"); HydrogenAdder hAdder = new HydrogenAdder(); hAdder.addExplicitHydrogensToSatisfyValency(mol); LonePairElectronChecker lpcheck = new LonePairElectronChecker(); lpcheck.newSaturate(mol); Object[] object = {new Integer(6),new Boolean(false)}; descriptor.setParameters(object); for (int i = 0 ; i < mol.getAtomCount() ; i++){ double result= ((DoubleResult)descriptor.calculate(mol.getAtom(i), mol).getValue()).doubleValue();// logger.debug(mol.getAtom(i).getSymbol()+",result_: "+result); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -