/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package com.chemhack.jsMolEditor.client.test;
import com.chemhack.jsMolEditor.client.model.VirtualHydrogenCounter;
import com.chemhack.jsMolEditor.client.model.Molecule;
import com.chemhack.jsMolEditor.client.model.Atom;
import com.chemhack.jsMolEditor.client.model.DefaultMolecule;
import com.google.gwt.junit.client.GWTTestCase;
/**
* @author Richard L. Apodaca
* Duan Lian
*/
public class VirtualHydrogenCounterTest extends GWTTestCase {
private VirtualHydrogenCounter counter = new VirtualHydrogenCounter();
public String getModuleName() {
return "com.chemhack.jsMolEditor.Editor";
}
public void testItShouldSayMethanolOxygenHasOneVirtualHydrogen() {
Molecule molecule = new DefaultMolecule();
Atom c = molecule.addAtom("C");
Atom o = molecule.addAtom("O");
molecule.connect(c, o, 1);
assertEquals(1, counter.countVirtualHydrogens(o));
}
public void testItShouldSayHydrogenChlorideHasOneVirtualHydrogen() {
Molecule molecule = new DefaultMolecule();
Atom cl = molecule.addAtom("Cl");
assertEquals(1, counter.countVirtualHydrogens(cl));
}
public void testItShoudSayMethylamineNitrogenHasTwoVirtualHydrogens() {
Molecule molecule = new DefaultMolecule();
Atom c = molecule.addAtom("C");
Atom n = molecule.addAtom("N");
molecule.connect(c, n, 1);
assertEquals(2, counter.countVirtualHydrogens(n));
}
public void testItShouldSayEthaneCarbonHasThreeVirtualHydrogens() {
Molecule molecule = new DefaultMolecule();
Atom c1 = molecule.addAtom("C");
Atom c2 = molecule.addAtom("C");
molecule.connect(c1, c2, 1);
assertEquals(3, counter.countVirtualHydrogens(c1));
}
public void testItShouldSayHydroxylSingletRadicalHasOneVirtualHydrogen() {
Molecule molecule = new DefaultMolecule();
Atom o = molecule.addAtom("O");
o.setRadical(1);
assertEquals(1, counter.countVirtualHydrogens(o));
}
public void testItShouldSayMethylamineSingletRadicalNitrogenHasOneVirtualHydrogen() {
Molecule molecule = new DefaultMolecule();
Atom c = molecule.addAtom("C");
Atom n = molecule.addAtom("N");
n.setRadical(1);
molecule.connect(c, n, 1);
assertEquals(1, counter.countVirtualHydrogens(n));
}
public void testItShouldSayEthylRadicalCarbonHasTwoHydrogens() {
Molecule molecule = new DefaultMolecule();
Atom c1 = molecule.addAtom("C");
Atom c2 = molecule.addAtom("C");
c2.setRadical(1);
molecule.connect(c1, c2, 1);
assertEquals(2, counter.countVirtualHydrogens(c2));
}
public void testItShouldSayMethylDoubletRadicalCarbonHasTwoHydrogens() {
Molecule molecule = new DefaultMolecule();
Atom c = molecule.addAtom("C");
c.setRadical(2);
assertEquals(2, counter.countVirtualHydrogens(c));
}
public void testItShouldSayChlorineRadicalHasNoHydrogens() {
Molecule molecule = new DefaultMolecule();
Atom cl = molecule.addAtom("Cl");
cl.setRadical(1);
assertEquals(0, counter.countVirtualHydrogens(cl));
}
public void testItShouldSayMethylamineAnionNitrogenHasOneHydrogen() {
Molecule molecule = new DefaultMolecule();
Atom c = molecule.addAtom("C");
Atom n = molecule.addAtom("N");
n.setCharge(-1);
molecule.connect(c, n, 1);
assertEquals(1, counter.countVirtualHydrogens(n));
}
public void testItShouldSayTempoOxygenAtomHasNoHydrogens() {
// String TEMPO = "[NO NAME]\n CHEMWRIT 2D\nCreated with ChemWriter - http://metamolecular.com/chemwriter\n 11 11 0 0 0 0 0 0 0 0 0 V2000\n 7.3600 -6.6800 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.2260 -7.1800 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.0921 -6.6800 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.0921 -5.6800 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.2260 -5.1800 0.0000 N 0 0 0 0 0 0 0 0 0 0 0 0\n 7.3600 -5.800 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 9.5921 -4.8140 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 10.0921 -5.6800 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.8600 -4.8140 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 6.3600 -5.6800 0.0000 C 0 0 0 0 0 0 0 0 0 0 0 0\n 8.2260 -4.1800 0.0000 O 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 1 0 0 0 0\n 2 3 1 0 0 0 0\n 3 4 1 0 0 0 0\n 4 5 1 0 0 0 0\n 5 6 1 0 0 0 0\n 6 1 1 0 0 0 0\n 4 7 1 0 0 0 0\n 4 8 1 0 0 0 0\n 6 9 1 0 0 0 0\n 6 10 1 0 0 0 0\n 5 11 1 0 0 \nM RAD 1 11 1\nM END";
// Molecule tempo = MoleculeKit.readMolfile(TEMPO);
//
// assertEquals("O", tempo.getAtom(10).getSymbol());
// assertEquals(0, counter.countVirtualHydrogens(tempo.getAtom(10)));
}
}