@Test
public void next() throws Exception {
VFSubState state = createBenzeneToNaphthalene(AtomMatcher.forAny(), BondMatcher.forAny());
Iterator<int[]> it = new StateStream(state);
assertThat(it.next(), is(new int[]{0, 1, 2, 7, 8, 9}));
assertThat(it.next(), is(new int[]{0, 9, 8, 7, 2, 1}));
assertThat(it.next(), is(new int[]{1, 0, 9, 8, 7, 2}));
assertThat(it.next(), is(new int[]{1, 2, 7, 8, 9, 0}));
assertThat(it.next(), is(new int[]{2, 1, 0, 9, 8, 7}));
assertThat(it.next(), is(new int[]{2, 3, 4, 5, 6, 7}));
assertThat(it.next(), is(new int[]{2, 7, 6, 5, 4, 3}));
assertThat(it.next(), is(new int[]{2, 7, 8, 9, 0, 1}));
assertThat(it.next(), is(new int[]{3, 2, 7, 6, 5, 4}));
assertThat(it.next(), is(new int[]{3, 4, 5, 6, 7, 2}));
assertThat(it.next(), is(new int[]{4, 3, 2, 7, 6, 5}));
assertThat(it.next(), is(new int[]{4, 5, 6, 7, 2, 3}));
assertThat(it.next(), is(new int[]{5, 4, 3, 2, 7, 6}));
assertThat(it.next(), is(new int[]{5, 6, 7, 2, 3, 4}));
assertThat(it.next(), is(new int[]{6, 5, 4, 3, 2, 7}));
assertThat(it.next(), is(new int[]{6, 7, 2, 3, 4, 5}));
assertThat(it.next(), is(new int[]{7, 2, 1, 0, 9, 8}));
assertThat(it.next(), is(new int[]{7, 2, 3, 4, 5, 6}));
assertThat(it.next(), is(new int[]{7, 6, 5, 4, 3, 2}));
assertThat(it.next(), is(new int[]{7, 8, 9, 0, 1, 2}));
assertThat(it.next(), is(new int[]{8, 7, 2, 1, 0, 9}));
assertThat(it.next(), is(new int[]{8, 9, 0, 1, 2, 7}));
assertThat(it.next(), is(new int[]{9, 0, 1, 2, 7, 8}));
assertThat(it.next(), is(new int[]{9, 8, 7, 2, 1, 0}));
}