checkAdvance(c1, 10, "a"); checkAdvance(c1, 30, "a"); checkAdvance(c1, 60, "a"); expectFinished(c1); checkAdvance(c2, 10, "a"); checkAdvance(c2, 20, "b"); checkAdvance(c2, 30, "a"); checkAdvance(c2, 40, "b"); checkAdvance(c2, 50, "b"); checkAdvance(c2, 60, "a"); expectFinished(c2); checkAdvance(c3, 10, "a"); checkAdvance(c3, 20, "b"); checkAdvance(c3, 30, "a", "c"); checkAdvance(c3, 40, "b", "c"); checkAdvance(c3, 50, "b"); checkAdvance(c3, 60, "a"); expectFinished(c3); checkAdvance(c4, 30, "c", "d"); checkAdvance(c4, 40, "c", "d"); expectFinished(c4); checkAdvance(ca, 10, "a"); checkAdvance(ca, 20, "b"); checkAdvance(ca, 30, "a", "c", "d"); checkAdvance(ca, 40, "b", "c", "d");
checkAdvance(c1, 10, "a"); checkAdvance(c1, 30, "a"); checkAdvance(c1, 60, "a"); expectFinished(c1); checkAdvance(c2, 10, "a"); checkAdvance(c2, 20, "b"); checkAdvance(c2, 30, "a"); checkAdvance(c2, 40, "b"); checkAdvance(c2, 50, "b"); checkAdvance(c2, 60, "a"); expectFinished(c2); checkAdvance(c3, 10, "a"); checkAdvance(c3, 20, "b"); checkAdvance(c3, 30, "a", "c"); checkAdvance(c3, 40, "b", "c"); checkAdvance(c3, 50, "b"); checkAdvance(c3, 60, "a"); expectFinished(c3); checkAdvance(c4, 30, "c", "d"); checkAdvance(c4, 40, "c", "d"); expectFinished(c4); checkAdvance(ca, 10, "a"); checkAdvance(ca, 20, "b"); checkAdvance(ca, 30, "a", "c", "d"); checkAdvance(ca, 40, "b", "c", "d");