コード例 #1
0
    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())
コード例 #2
0
    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)
コード例 #3
0
    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))