@Test public void infeasibleAtoms() throws Exception { AtomMatcher mock = mock(AtomMatcher.class); when(mock.matches(any(IAtom.class), any(IAtom.class))).thenReturn(false); VFSubState state = createBenzeneToNaphthalene(mock, mock(BondMatcher.class)); for (int i = 0; i < state.nMax(); i++) { for (int j = 0; j < state.mMax(); j++) { assertFalse(state.feasible(i, j)); } } }
@Test public void infeasibleBonds() throws Exception { BondMatcher mock = mock(BondMatcher.class); when(mock.matches(any(IBond.class), any(IBond.class))).thenReturn(false); VFSubState state = createBenzeneToNaphthalene(AtomMatcher.forAny(), mock); state.m1[0] = 0; state.m1[1] = 1; state.m1[2] = 2; state.m1[3] = 3; state.m1[4] = 4; for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { assertFalse(state.feasible(i, j)); } } }
@Test public void infeasibleTerminalCount() throws Exception { VFSubState state = createBenzeneToNaphthalene(AtomMatcher.forAny(), BondMatcher.forAny()); assertTrue(state.feasible(0, 0)); // 0,0 is feasible // XXX: depends on molecule order not changing state.t1[1] = 1; state.t1[5] = 1; assertFalse(state.feasible(0, 0)); // 0,0 is infeasible }
@Test public void infeasibleRemainCount() throws Exception { VFSubState state = createBenzeneToNaphthalene(AtomMatcher.forAny(), BondMatcher.forAny()); assertTrue(state.feasible(0, 0)); // 0,0 is feasible // XXX: depends on molecule order not changing state.m1[1] = 1; state.m1[5] = 5; state.t2[1] = 1; state.t2[9] = 1; assertFalse(state.feasible(0, 0)); // 0,0 is infeasible }