コード例 #1
0
    def test_1wide(self):
        sut = Veb(1)
        sut.insert(0)
        self.assertEqual(sut.succ(0), None)
        self.assertEqual(sut.succ(1), None)
        self.assertEqual(sut.pred(0), None)
        self.assertEqual(sut.pred(1), 0)

        sut.insert(1)
        self.assertEqual(sut.succ(0), 1)
        self.assertEqual(sut.succ(1), None)
        self.assertEqual(sut.pred(0), None)
        self.assertEqual(sut.pred(1), 0)
コード例 #2
0
    def test_big_numbers(self):
        u = 1 << 31
        a = Veb(u)
        a.insert(1)
        a.insert(12345)
        a.insert(99999999)
        a.insert(750000)
        a.insert(750001)
        a.insert((1 << 16))
        a.insert((1 << 31) - 1)

        self.assertEqual(a.pred(2), 1)
        self.assertEqual(a.succ(2), 12345)
        self.assertEqual(a.succ(99999998), 99999999)
        self.assertEqual(a.pred(100000000), 99999999)
        self.assertEqual(a.pred(750001), 750000)
        self.assertEqual(a.pred((1 << 17)), 1 << 16)
        self.assertEqual(a.succ((1 << 30)), (1 << 31) - 1)
コード例 #3
0
    def test_2wide(self):
        sut = Veb(3)
        sut.insert(2)
        self.assertEqual(sut.succ(0), 2)
        self.assertEqual(sut.succ(1), 2)
        self.assertEqual(sut.succ(2), None)
        self.assertEqual(sut.succ(3), None)

        self.assertEqual(sut.pred(0), None)
        self.assertEqual(sut.pred(1), None)
        self.assertEqual(sut.pred(2), None)
        self.assertEqual(sut.pred(3), 2)

        sut.insert(3)
        self.assertEqual(sut.succ(0), 2)
        self.assertEqual(sut.succ(1), 2)
        self.assertEqual(sut.succ(2), 3)
        self.assertEqual(sut.succ(3), None)

        self.assertEqual(sut.pred(0), None)
        self.assertEqual(sut.pred(1), None)
        self.assertEqual(sut.pred(2), None)
        self.assertEqual(sut.pred(3), 2)

        sut.insert(0)
        self.assertEqual(sut.succ(0), 2)
        self.assertEqual(sut.succ(1), 2)
        self.assertEqual(sut.succ(2), 3)
        self.assertEqual(sut.succ(3), None)

        self.assertEqual(sut.pred(0), None)
        self.assertEqual(sut.pred(1), 0)
        self.assertEqual(sut.pred(2), 0)
        self.assertEqual(sut.pred(3), 2)

        sut.insert(1)
        self.assertEqual(sut.succ(0), 1)
        self.assertEqual(sut.succ(1), 2)
        self.assertEqual(sut.succ(2), 3)
        self.assertEqual(sut.succ(3), None)

        self.assertEqual(sut.pred(0), None)
        self.assertEqual(sut.pred(1), 0)
        self.assertEqual(sut.pred(2), 1)
        self.assertEqual(sut.pred(3), 2)
コード例 #4
0
 def test_ctor(self):
     b = Veb(8)
     b.insert(6)
     self.assertEqual(b.pred(7), 6)
     self.assertEqual(b.succ(1), 6)