29.3 Test Cycle Index Variables

709test cycle index variables 709  (704)
testVariable1(): () == {
        macro V == CycleIndexVariable;
        v1: V := 1 :: V;
        v2: V := 2 :: V;
        assertEquals(I, 1, weight v1);
        assertEquals(I, 2, weight v2);
        assertEquals(I, 4, weight stretch(v1, 4));
        assertEquals(I, 4, weight stretch(v2, 2));
        assertEquals(I, 1, compare(v1, v2));
        assertFalse(v1 < v2);
        assertFalse(v1 <= v2);
        assertFalse(v1 = v2);
        assertTrue (v1 > v2);
        assertTrue (v1 >= v2);
        assertTrue (v1 = v1);
        assertEquals(V, v1, max(v1, v2));
        assertEquals(V, v2, min(v1, v2));
}

Uses CycleIndexVariable 329 and I 47.