示例#1
0
    def test_save(self):
        A = [1, 1, 1, 1, 3, 0, 1, 1, 1, 1, 3, 1, 2, 2]
        wa = WatArray()
        wa.Init(A)
        self.assertEqual(wa.Rank(3, 14), 2)

        _, filename = tempfile.mkstemp()
        wa.dump(filename)
        data = wa.dumps()
        del wa

        wa = WatArray()
        wa.load(filename)
        os.remove(filename)
        self.assertEqual(wa.Rank(3, 14), 2)
        del wa

        wa = WatArray()
        wa.loads(data)
        self.assertEqual(wa.Rank(3, 14), 2)
        del wa
示例#2
0
    def test_example(self):
        wa = WatArray()
        A = [5, 1, 0, 4, 2, 2, 0, 3]
        wa.Init(A)
        self.assertEqual(wa.length(), 8)
        self.assertEqual(wa.Lookup(3), 4)
        self.assertEqual(wa.Rank(2, 6), 2)
        self.assertEqual(wa.Select(2, 2), 5)
        self.assertEqual(wa.RankLessThan(4, 5), 3)
        self.assertEqual(wa.RankMoreThan(4, 5), 1)
        self.assertEqual(wa.FreqRange(2, 5, 2, 6), 3)
        self.assertEqual(wa.RankAll(4, 5), (1, 3, 1))
        self.assertEqual(wa.RankAll(7, 5), (NOTFOUND, NOTFOUND, NOTFOUND))
        self.assertEqual(wa.MaxRange(1, 6), (3, 4))
        self.assertEqual(wa.MinRange(1, 6), (2, 0))
        self.assertEqual(wa.QuantileRange(1, 6, 3), (4, 2))
        self.assertEqual(wa.ListModeRange(2, 5, 1, 6, 3), [(2, 2), (4, 1)])
        self.assertEqual(
            wa.ListMinRange(1, 5, 1, 6, 3), [(1, 1), (2, 2), (4, 1)])
        self.assertEqual(
            wa.ListMaxRange(1, 5, 1, 6, 3), [(4, 1), (2, 2), (1, 1)])

        fname = tempfile.mkstemp()[1]

        wa.dump(fname)
        wa.Clear()
        self.assertEqual(wa.length(), 0)
        wa.load(fname)
        self.assertEqual(wa.length(), 8)
        os.remove(fname)

        s = wa.dumps()
        wa.Clear()
        self.assertEqual(wa.length(), 0)
        wa.loads(s)
        self.assertEqual(wa.length(), 8)

        wa.Clear()
        del wa
示例#3
0
    def test_trivial(self):
        wa = WatArray()
        self.assertEqual(wa.alphabet_num(), 0)
        self.assertEqual(wa.length(), 0)
        self.assertEqual(wa.Rank(0, 0), NOTFOUND)
        self.assertEqual(wa.Select(0, 0), NOTFOUND)
        self.assertEqual(wa.Lookup(0), NOTFOUND)
        self.assertEqual(wa.Freq(0), NOTFOUND)
        self.assertEqual(wa.FreqSum(0, 1), NOTFOUND)

        rank, rank_less_than, rank_more_than = wa.RankAll(0, 0)
        self.assertEqual(rank, NOTFOUND)
        self.assertEqual(rank_less_than, NOTFOUND)
        self.assertEqual(rank_more_than, NOTFOUND)

        pos, val = wa.MaxRange(0, 0)
        self.assertEqual(pos, NOTFOUND)
        self.assertEqual(val, NOTFOUND)

        _, filename = tempfile.mkstemp()
        wa.dump(filename)
        data = wa.dumps()
        del wa

        wa = WatArray()
        wa.load(filename)
        os.remove(filename)
        self.assertEqual(wa.Rank(0, 0), NOTFOUND)
        self.assertEqual(wa.Select(0, 0), NOTFOUND)
        self.assertEqual(wa.Lookup(0), NOTFOUND)
        del wa

        wa = WatArray()
        wa.loads(data)
        self.assertEqual(wa.Rank(0, 0), NOTFOUND)
        self.assertEqual(wa.Select(0, 0), NOTFOUND)
        self.assertEqual(wa.Lookup(0), NOTFOUND)
        del wa