def test_closure(self):
     clos = Closure(6, 16, 2)
     self.assertEqual(clos.len(), 6, "incorrect length of closure")
     self.assertEqual(clos[0], 6)
     self.assertEqual(clos[1], 8)
     self.assertEqual(clos[clos.len() - 1], 16)
     clos2 = Closure(None, 10, 2)
     self.assertEqual(clos2.len(), math.inf,
                      "incorrect length for unbounded closure")
     with self.assertRaises(Exception):
         a = clos[8]
     with self.assertRaises(Exception):
         a = clos2[1]
     closWrong = Closure(7, 6, 12)
     self.assertEqual(closWrong.len(), 1)