public void testItShouldChangeItsSymbolWhenGivenAValidNewOne() { Molecule molecule = new DefaultMolecule(); Atom atom = molecule.addAtom("C"); atom.setSymbol("O"); assertEquals("O", atom.getSymbol()); }
public void testItShouldReportValenceTwoForAPrimaryDoubleBondTerminal() { Molecule molecule = new DefaultMolecule(); Atom c1 = molecule.addAtom("C"); Atom c2 = molecule.addAtom("C"); molecule.connect(c1, c2, 2); assertEquals(2, c1.getValence()); }
public void testItShouldThrowWhenSettingAnIllegalAtomLabel() { Molecule molecule = new DefaultMolecule(); Atom atom = molecule.addAtom("C"); try { atom.setSymbol("bailout"); fail(); } catch (IllegalStateException e) { } }
public void testItShouldUpdateItsCoordinatesWhenMoved() { Molecule molecule = new DefaultMolecule(); Atom atom = molecule.addAtom("C"); atom.move(100, 100, 0); assertEquals(100d, atom.getX()); assertEquals(100d, atom.getY()); assertEquals(0d, atom.getZ()); }
public void testItShouldReportValenceFourForAQuaternaryCarbon() { Molecule molecule = new DefaultMolecule(); Atom c1 = molecule.addAtom("C"); Atom c2 = molecule.addAtom("C"); Atom c3 = molecule.addAtom("C"); Atom c4 = molecule.addAtom("C"); Atom c5 = molecule.addAtom("C"); molecule.connect(c1, c2, 1); molecule.connect(c1, c3, 1); molecule.connect(c1, c4, 1); molecule.connect(c1, c5, 1); assertEquals(4, c1.getValence()); }
public void testItShouldThrowWhenIllegalRadicalIsSet() { Molecule molecule = new DefaultMolecule(); Atom atom = molecule.addAtom("O"); try { atom.setRadical(-1); fail(); } catch (IllegalStateException ignore) { } try { atom.setRadical(4); fail(); } catch (IllegalStateException ignore) { } }
public Atom getClosestAtom(Point2D graphCord) { Atom closestAtom = null; double closestDistance = Double.MAX_VALUE; for (int i = 0; i < molecule.countAtoms(); i++) { Atom currentAtom = molecule.getAtom(i); Point2D currentPointGraph = realCordToGraphCord(new Point2D(currentAtom.getX(), currentAtom.getY())); double distance = GeometryTools.calcDistance(graphCord, currentPointGraph); if (distance <= renderer.getRendererModel().getAtomRadius() && distance < closestDistance) { closestAtom = currentAtom; closestDistance = distance; } } return closestAtom; }