def testMultipleSizeConstraints(self): """Test several constraints that influence each other. """ a1 = _core.IntArraySlot(1) a1.resize(4) lsc = LinearSizeConstraint(a1,1,1) a2 = _core.IntArraySlot(1, lsc) usc = UserSizeConstraint(5) a3 = _core.IntArraySlot(1, usc) a4 = _core.IntArraySlot(1) self.assertEqual(0, a3[1]) a2.connect(a4) a2.connect(a3) self.assertEqual(5, a4.size()) a2[1] = 12; self.assertEqual(12, a2[1]) self.assertEqual(12, a3[1]) self.assertEqual(12, a4[1]) # Resizing the first slot must fail because of the other, size # constraint slots... self.assertRaises(ValueError, lambda: a1.resize(2)) # Check that the slots still have the original size... self.assertEqual(4, a1.size()) self.assertEqual(5, a2.size()) self.assertEqual(5, a3.size()) self.assertEqual(5, a4.size())
def testLinearSizeConstraints(self): """Test the LinearSizeConstraint class. """ a1 = _core.IntArraySlot(1) a1.resize(4) lsc = LinearSizeConstraint(a1, 2, 1) self.assertEqual(lsc.getSize(), 9) # Create a slot that depends on the size of a1 a2 = _core.IntArraySlot(1, lsc) self.assertEqual(a2.size(), 9) a1.resize(6) self.assertEqual(a2.size(), 13)
def testGetSetMultn(self): # Multiplicity 3 asl = _core.IntArraySlot(3) asl.resize(10) for i in range(10): asl.setValue(i, (i, i+1, i+2)) for i in range(10): self.assertEqual(asl.getValue(i), (i,i+1,i+2)) for i in range(10): self.assertEqual(asl[i], (i,i+1,i+2))