Ejemplo n.º 1
0
    def test_index_delete(self):
        new_index = Index()
        new_index[["key" + str(s) for s in range(self.item_count)]] = \
            ["value" + str(s) for s in range(self.item_count)]

        del new_index["key0"]
        assert len(new_index.keys()) == self.item_count - 1
        try:
            new_index["key0"]
            raise
        except KeyError:
            pass
        del new_index[0]
        assert len(new_index.keys()) == self.item_count - 2
        try:
            new_index["key1"]
            raise
        except KeyError:
            pass
        try:
            del new_index["key1"]
            raise
        except KeyError:
            pass


        assert new_index[range(self.item_count - 2)] == \
            ["value" + str(s) for s in range(self.item_count)][2:]
        del new_index[["key" + str(s) for s in range(self.item_count)[2:]]]
        assert len(new_index.keys()) == 0
        del new_index
Ejemplo n.º 2
0
    def test_index_delete(self):
        new_index = Index()
        new_index[["key" + str(s) for s in range(self.item_count)]] = \
            ["value" + str(s) for s in range(self.item_count)]

        del new_index["key0"]
        assert len(new_index.keys()) == self.item_count - 1
        try:
            new_index["key0"]
            raise
        except KeyError:
            pass
        del new_index[0]
        assert len(new_index.keys()) == self.item_count - 2
        try:
            new_index["key1"]
            raise
        except KeyError:
            pass
        try:
            del new_index["key1"]
            raise
        except KeyError:
            pass


        assert new_index[range(self.item_count - 2)] == \
            ["value" + str(s) for s in range(self.item_count)][2:]
        del new_index[["key" + str(s) for s in range(self.item_count)[2:]]]
        assert len(new_index.keys()) == 0
        del new_index
Ejemplo n.º 3
0
    def test_index_individual(self):
        new_index = Index()
        new_index["key0"]  = ["value0"]
        new_index["key1"]  = "value1"
        new_index.insert("key2", ["value2"])
        new_index.insert("key3", "value3")

        try:
            new_index[dict()]
            raise
        except KeyError:
            pass
        assert len(new_index.keys()) == 4
        assert new_index["key0"] == ["value0"]
        assert new_index["key1"] == "value1"
        assert new_index["key2"] == ["value2"]
        assert new_index["key3"] == "value3"
        assert new_index[0] == ["value0"]
        assert new_index[1] == "value1"
        assert new_index[2] == ["value2"]
        assert new_index[3] == "value3"

        try: 
            new_index[None]
        except KeyError:
            pass
        del new_index
Ejemplo n.º 4
0
    def test_index_individual(self):
        new_index = Index()
        new_index["key0"] = ["value0"]
        new_index["key1"] = "value1"
        new_index.insert("key2", ["value2"])
        new_index.insert("key3", "value3")

        try:
            new_index[dict()]
            raise
        except KeyError:
            pass
        assert len(new_index.keys()) == 4
        assert new_index["key0"] == ["value0"]
        assert new_index["key1"] == "value1"
        assert new_index["key2"] == ["value2"]
        assert new_index["key3"] == "value3"
        assert new_index[0] == ["value0"]
        assert new_index[1] == "value1"
        assert new_index[2] == ["value2"]
        assert new_index[3] == "value3"

        try:
            new_index[None]
        except KeyError:
            pass
        del new_index
Ejemplo n.º 5
0
    def test_index_relabel(self):
        new_index = Index()
        new_index[["key" + str(s) for s in range(self.item_count)]] = \
            ["value" + str(s) for s in range(self.item_count)]

        new_index.relabel({"key0" : "new_key0", "key1": "new_key1"})
        new_index["new_key0"] = "new_value0"

        new_index.relabel({"new_key0": "key0", "new_key1" : "key1"})
        assert len(new_index.keys()) == self.item_count
        assert new_index["key0"] == "new_value0"
        assert new_index[["key" + str(s) for s in range(self.item_count)][1:]] == \
            ["value" + str(s) for s in range(self.item_count)][1:]
        del new_index

        pass
Ejemplo n.º 6
0
    def test_index_relabel(self):
        new_index = Index()
        new_index[["key" + str(s) for s in range(self.item_count)]] = \
            ["value" + str(s) for s in range(self.item_count)]

        new_index.relabel({"key0": "new_key0", "key1": "new_key1"})
        new_index["new_key0"] = "new_value0"

        new_index.relabel({"new_key0": "key0", "new_key1": "key1"})
        assert len(new_index.keys()) == self.item_count
        assert new_index["key0"] == "new_value0"
        assert new_index[["key" + str(s) for s in range(self.item_count)][1:]] == \
            ["value" + str(s) for s in range(self.item_count)][1:]
        del new_index

        pass
Ejemplo n.º 7
0
    def test_index_bulk(self):
        new_index = Index()
        new_index[["key0", "key1"]] = ["value0", "value1"]
        new_index.insert(["key2", "key3"], ["value2", "value3"])
        assert len(new_index.keys()) == 4
        assert new_index["key0"] == "value0"
        assert new_index["key1"] == "value1"
        assert new_index["key2"] == "value2"
        assert new_index["key3"] == "value3"
        assert new_index[0] == "value0"
        assert new_index[1] == "value1"
        assert new_index[2] == "value2"
        assert new_index[3] == "value3"
        assert new_index[["key" + str(s) for s in range(4)]] \
            == ["value" + str(s) for s in range(4)]
        assert new_index[range(4)] == ["value" + str(s) for s in range(4)]
        assert new_index[0:4] == ["value" + str(s) for s in range(4)]

        try:
            new_index[["test_list"]] = "not_a_list"
            raise
        except ValueError:
            pass
        try:
            new_index.insert(["test_list"], "not_a_list")
            raise
        except ValueError:
            pass
        try:
            new_index[["test_list", "test_list1"]] = ["mismatch_list_size"]
            raise
        except ValueError:
            pass
        try:
            new_index.insert(["test_list", "test_list1"], ["mismatch_list_size"])
            raise
        except ValueError:
            pass
        try:
            new_index[["key0", "nonexistent_key"]] = ["a", "b"]
            raise
        except ValueError:
            pass
        try:
            new_index.insert(["key0", "nonexistent_key"], ["a", "b"])
            raise
        except AssertionError:
            pass

        del new_index
        new_index = Index()
        new_index["key2"]  = "value2"
        new_index.insert("key1", "value1", "key2")
        new_index.insert("key0", "value0", "key1")
    #    import IPython
    #    IPython.embed()
        assert new_index[0:3] == ["value" + str(s) for s in range(3)]
        assert new_index[[True, True, True]] == ["value" + str(s) for s in range(3)]
        assert new_index[[True, True, False]] == ["value" + str(s) for s in range(2)]
        try:
            new_index[[True, True, True, True]]
            raise
        except KeyError:
            pass
Ejemplo n.º 8
0
    def test_index_slice(self):
        new_index = Index()
        assert new_index[0:10] == []
        assert new_index[:] == []
        assert new_index[::2] == []

        new_index[["key" + str(s) for s in range(self.item_count)]] = \
            ["value" + str(s) for s in range(self.item_count)]
        assert new_index[0:0] == []
        assert new_index[0:0:1] == []
        assert new_index[0:0:2] == []
        assert new_index[0:0:-1] == []
        assert new_index[0:0:-1] == []
        assert new_index[0:0:-2] == []
        assert new_index[2:2] == []
        assert new_index[3:2] == []
        assert new_index[self.item_count:self.item_count] == []
        assert new_index[self.item_count:self.item_count:2] == []
        assert new_index[self.item_count:self.item_count:-2] == [] 
        assert new_index[self.item_count:0] == []
        assert new_index[self.item_count-1:0] == []
        assert new_index[self.item_count:] == []
        assert new_index[(-1*self.item_count)-1::-1] == []
        assert new_index[(-1*self.item_count)-1::] == \
            ["value" + str(s) for s in range(self.item_count)]
        assert new_index[-1:(-1*self.item_count)-1] == []

        temp_list = ["value" + str(s) for s in range(self.item_count)]
        list.reverse(temp_list)
        assert new_index[-1:(-1*self.item_count)-1:-1] == temp_list
        del temp_list

        assert new_index[::] == ["value" + str(s) for s in range(self.item_count)]
        assert new_index[::2] == ["value" + str(s) for s in range(0, self.item_count, 2)]
        assert new_index[::3] == ["value" + str(s) for s in range(0, self.item_count, 3)]
        assert new_index[:self.item_count:] == \
            ["value" + str(s) for s in range(self.item_count)]

        # there is no string key for past the end of the list, so we can only
        # access self.item_count-1 items in this manner
        assert new_index["key0":"key"+str(self.item_count-1)] == \
            ["value" + str(s) for s in range(self.item_count-1)]
        assert new_index["key2":"key"+str(self.item_count-1)] == \
            ["value" + str(s) for s in range(2, self.item_count-1)]
        assert new_index["key0":] == ["value" + str(s) for s in range(self.item_count)]
        assert new_index[:"key"+str(self.item_count-1)] == \
            ["value" + str(s) for s in range(self.item_count-1)]
        assert new_index["key0":"key"+str(self.item_count-1):2] == \
            ["value" + str(s) for s in range(0,self.item_count-1,2)]

        assert new_index["key0":4] == ["value" + str(s) for s in range(4)]
        assert new_index[0:"key4"] == ["value" + str(s) for s in range(4)]

        assert new_index["key4":"key2"] == []

        assert new_index["key2":-1] == \
            ["value" + str(s) for s in range(2, self.item_count-1)]
        del new_index

        """ modify data """
        new_index = Index()
        new_index[["key" + str(s) for s in range(self.item_count)]] = \
            ["value" + str(s) for s in range(self.item_count)]

        new_index["key0"] = "new_value0"
        new_index["key2"] = "new_value2"
        new_index[["key1", "key3"]] = ["new_value1", "new_value3"]
        assert len(new_index.keys()) == self.item_count
        assert new_index[["key" + str(s) for s in range(self.item_count)][0:4]] == \
            ["new_value" + str(s) for s in range(self.item_count)][0:4]
        if (self.item_count > 4):
            assert new_index[["key" + str(s) for s in range(self.item_count)][4:]] == \
                ["value" + str(s) for s in range(self.item_count)][4:]

        del new_index
Ejemplo n.º 9
0
    def test_index_bulk(self):
        new_index = Index()
        new_index[["key0", "key1"]] = ["value0", "value1"]
        new_index.insert(["key2", "key3"], ["value2", "value3"])
        assert len(new_index.keys()) == 4
        assert new_index["key0"] == "value0"
        assert new_index["key1"] == "value1"
        assert new_index["key2"] == "value2"
        assert new_index["key3"] == "value3"
        assert new_index[0] == "value0"
        assert new_index[1] == "value1"
        assert new_index[2] == "value2"
        assert new_index[3] == "value3"
        assert new_index[["key" + str(s) for s in range(4)]] \
            == ["value" + str(s) for s in range(4)]
        assert new_index[range(4)] == ["value" + str(s) for s in range(4)]
        assert new_index[0:4] == ["value" + str(s) for s in range(4)]

        try:
            new_index[["test_list"]] = "not_a_list"
            raise
        except ValueError:
            pass
        try:
            new_index.insert(["test_list"], "not_a_list")
            raise
        except ValueError:
            pass
        try:
            new_index[["test_list", "test_list1"]] = ["mismatch_list_size"]
            raise
        except ValueError:
            pass
        try:
            new_index.insert(["test_list", "test_list1"],
                             ["mismatch_list_size"])
            raise
        except ValueError:
            pass
        try:
            new_index[["key0", "nonexistent_key"]] = ["a", "b"]
            raise
        except ValueError:
            pass
        try:
            new_index.insert(["key0", "nonexistent_key"], ["a", "b"])
            raise
        except AssertionError:
            pass

        del new_index
        new_index = Index()
        new_index["key2"] = "value2"
        new_index.insert("key1", "value1", "key2")
        new_index.insert("key0", "value0", "key1")
        #    import IPython
        #    IPython.embed()
        assert new_index[0:3] == ["value" + str(s) for s in range(3)]
        assert new_index[[True, True,
                          True]] == ["value" + str(s) for s in range(3)]
        assert new_index[[True, True,
                          False]] == ["value" + str(s) for s in range(2)]
        try:
            new_index[[True, True, True, True]]
            raise
        except KeyError:
            pass
Ejemplo n.º 10
0
    def test_index_slice(self):
        new_index = Index()
        assert new_index[0:10] == []
        assert new_index[:] == []
        assert new_index[::2] == []

        new_index[["key" + str(s) for s in range(self.item_count)]] = \
            ["value" + str(s) for s in range(self.item_count)]
        assert new_index[0:0] == []
        assert new_index[0:0:1] == []
        assert new_index[0:0:2] == []
        assert new_index[0:0:-1] == []
        assert new_index[0:0:-1] == []
        assert new_index[0:0:-2] == []
        assert new_index[2:2] == []
        assert new_index[3:2] == []
        assert new_index[self.item_count:self.item_count] == []
        assert new_index[self.item_count:self.item_count:2] == []
        assert new_index[self.item_count:self.item_count:-2] == []
        assert new_index[self.item_count:0] == []
        assert new_index[self.item_count - 1:0] == []
        assert new_index[self.item_count:] == []
        assert new_index[(-1 * self.item_count) - 1::-1] == []
        assert new_index[(-1*self.item_count)-1::] == \
            ["value" + str(s) for s in range(self.item_count)]
        assert new_index[-1:(-1 * self.item_count) - 1] == []

        temp_list = ["value" + str(s) for s in range(self.item_count)]
        list.reverse(temp_list)
        assert new_index[-1:(-1 * self.item_count) - 1:-1] == temp_list
        del temp_list

        assert new_index[::] == [
            "value" + str(s) for s in range(self.item_count)
        ]
        assert new_index[::2] == [
            "value" + str(s) for s in range(0, self.item_count, 2)
        ]
        assert new_index[::3] == [
            "value" + str(s) for s in range(0, self.item_count, 3)
        ]
        assert new_index[:self.item_count:] == \
            ["value" + str(s) for s in range(self.item_count)]

        # there is no string key for past the end of the list, so we can only
        # access self.item_count-1 items in this manner
        assert new_index["key0":"key"+str(self.item_count-1)] == \
            ["value" + str(s) for s in range(self.item_count-1)]
        assert new_index["key2":"key"+str(self.item_count-1)] == \
            ["value" + str(s) for s in range(2, self.item_count-1)]
        assert new_index["key0":] == [
            "value" + str(s) for s in range(self.item_count)
        ]
        assert new_index[:"key"+str(self.item_count-1)] == \
            ["value" + str(s) for s in range(self.item_count-1)]
        assert new_index["key0":"key"+str(self.item_count-1):2] == \
            ["value" + str(s) for s in range(0,self.item_count-1,2)]

        assert new_index["key0":4] == ["value" + str(s) for s in range(4)]
        assert new_index[0:"key4"] == ["value" + str(s) for s in range(4)]

        assert new_index["key4":"key2"] == []

        assert new_index["key2":-1] == \
            ["value" + str(s) for s in range(2, self.item_count-1)]
        del new_index
        """ modify data """
        new_index = Index()
        new_index[["key" + str(s) for s in range(self.item_count)]] = \
            ["value" + str(s) for s in range(self.item_count)]

        new_index["key0"] = "new_value0"
        new_index["key2"] = "new_value2"
        new_index[["key1", "key3"]] = ["new_value1", "new_value3"]
        assert len(new_index.keys()) == self.item_count
        assert new_index[["key" + str(s) for s in range(self.item_count)][0:4]] == \
            ["new_value" + str(s) for s in range(self.item_count)][0:4]
        if (self.item_count > 4):
            assert new_index[["key" + str(s) for s in range(self.item_count)][4:]] == \
                ["value" + str(s) for s in range(self.item_count)][4:]

        del new_index