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
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
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
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
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
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
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