def test_last(self): t = Table('table_last', dshape="{a: int, b: float32}", create=True) t.resize(10) ivalues = np.random.randint(100,size=10) t['a'] = ivalues fvalues = np.random.rand(10) t['b'] = fvalues last_ = list(t.last().values()) self.assertEqual(last_, [t._column(0)[-1],t._column(1)[-1]]) last_a = t.last('a') self.assertEqual(last_a, t._column(0)[-1]) last_a_b = t.last(['a','b']) self.assertEqual(list(last_a_b),last_)
def test_last(self) -> None: t = Table("table_last", dshape="{a: int, b: float32}", create=True) t.resize(10) ivalues = np.random.randint(100, size=10) t["a"] = ivalues fvalues = np.random.rand(10) t["b"] = fvalues last_ = list(notNone(t.last()).values()) self.assertEqual(last_, [t._column(0)[-1], t._column(1)[-1]]) last_a = t.last("a") self.assertEqual(last_a, t._column(0)[-1]) last_a_b = t.last(["a", "b"]) self.assertEqual(list(last_a_b), last_)
def test_at(self): t = Table('table_at', dshape="{a: int, b: float32}", create=True) t.resize(20) ivalues = np.random.randint(100,size=20) t['a'] = ivalues fvalues = np.random.rand(20) t['b'] = fvalues at_ = t.at[3,'a'] self.assertEqual(at_, t._column(0)[3]) iat_ = t.iat[3, 1] self.assertEqual(iat_, t._column(1)[3]) view = t.loc[2:11] at_ = view.at[3,'a'] self.assertEqual(at_, view._column(0)[view.id_to_index(3)]) iat_ = view.iat[3, 1] self.assertEqual(iat_, view._column(1)[3])
def _free_chunk_nb(t: Table) -> int: return sum( [ len(e) for e in t._column("atext").storagegroup["atext"]._strings._freelist # type: ignore ] )
def test_at(self) -> None: t = Table("table_at", dshape="{a: int, b: float32}", create=True) t.resize(20) ivalues = np.random.randint(100, size=20) t["a"] = ivalues fvalues = np.random.rand(20) t["b"] = fvalues at_ = t.at[3, "a"] self.assertEqual(at_, t._column(0)[3]) iat_ = t.at[3, 1] self.assertEqual(iat_, t._column(1)[3]) view = t.loc[2:11] assert view is not None at_ = view.at[3, "a"] self.assertEqual(at_, view._column(0)[view.id_to_index(3)]) iat_ = view.at[3, 1] self.assertEqual(iat_, view._column(1)[3])
def test_mmap5(self): #pylint: disable=protected-access self._rmtree() t = Table('table_mmap_5', dshape='{anint: int, atext: string}') for i in range(100): t.add(dict(anint=i, atext="abc")) t.add(dict(anint=i, atext="xyz")) nb_str = len(set(t._column("atext").storagegroup["atext"].view)) self.assertEqual(nb_str, 2)
def test_mmap6(self): #pylint: disable=protected-access long_text = "a"*LONG_SIZE self._rmtree() t = Table('table_mmap_6', dshape='{anint: int, atext: string}') for i in range(100): t.add(dict(anint=i, atext=long_text)) nb_str = len(set(t._column("atext").storagegroup["atext"].view)) self.assertEqual(nb_str, 100)
def test_set_at(self) -> None: t = Table("table_set_at", dshape="{a: int, b: float32}", create=True) t.resize(20) ivalues = np.random.randint(100, size=20) t["a"] = ivalues fvalues = np.random.rand(20) t["b"] = fvalues t.at[3, "a"] = 1001 self.assertEqual(t._column(0)[3], 1001) t.at[3, "a"] = 1001 self.assertEqual(t._column(0)[3], 1001) t.at[3, 0] = 1002 self.assertEqual(t._column(0)[3], 1002) view = t.loc[2:11] assert view is not None view.loc[3, "a"] = 1003 self.assertEqual(view._column(0)[view.id_to_index(3)], 1003) self.assertEqual(t._column(0)[3], 1003) view_view = view.loc[3:6] assert view_view is not None view_view.at[3, "a"] = 1004 self.assertEqual(view_view._column(0)[view_view.id_to_index(3)], 1004) self.assertEqual(t._column(0)[3], 1004) view_view.at[2, 0] = 1005 self.assertEqual(view_view._column(0)[2], 1005) self.assertEqual( t._column(0)[t.id_to_index(view_view.index_to_id(2))], 1005)
def test_set_loc(self) -> None: t = Table("table_set_loc", dshape="{a: int, b: float32}", create=True) t.resize(20) ivalues = np.random.randint(100, size=20) t["a"] = ivalues fvalues = np.random.rand(20) t["b"] = fvalues t.loc[3:6] = [1001, 1002] self.assertTrue(np.array_equal(t._column(0)[3:7], np.repeat(1001, 4))) self.assertTrue(np.array_equal(t._column(1)[3:7], np.repeat(1002, 4))) t.loc[3:7] = 1003 self.assertTrue(np.array_equal(t._column(0)[3:8], np.repeat(1003, 5))) self.assertTrue(np.array_equal(t._column(1)[3:8], np.repeat(1003, 5))) t.loc[3:7, ["a", "b"]] = [1004, 1005] self.assertTrue(np.array_equal(t._column(0)[3:8], np.repeat(1004, 5))) self.assertTrue(np.array_equal(t._column(1)[3:8], np.repeat(1005, 5))) t.loc[3:7, ["a", "b"]] = [1006, 1007] # previous iloc test self.assertTrue(np.array_equal(t._column(0)[3:7], np.repeat(1006, 4))) self.assertTrue(np.array_equal(t._column(1)[3:7], np.repeat(1007, 4))) view = t.loc[2:11] assert view is not None view.loc[3:6] = [1008, 1009] self.assertTrue( np.array_equal( view._column(0)[view.id_to_index(slice(3, 6))], np.repeat(1008, 4))) self.assertTrue( np.array_equal( view._column(1)[view.id_to_index(slice(3, 6))], np.repeat(1009, 4))) self.assertTrue(np.array_equal(t._column(0)[3:7], np.repeat(1008, 4))) self.assertTrue(np.array_equal(t._column(1)[3:7], np.repeat(1009, 4))) view_view = view.loc[3:6] assert view_view is not None view_view.loc[3:6] = [1010, 1011] self.assertTrue( np.array_equal( view_view._column(0)[view_view.id_to_index(slice(3, 6))], np.repeat(1010, 4), )) self.assertTrue( np.array_equal( view_view._column(1)[view_view.id_to_index(slice(3, 6))], np.repeat(1011, 4), )) self.assertTrue(np.array_equal(t._column(0)[3:7], np.repeat(1010, 4))) self.assertTrue(np.array_equal(t._column(1)[3:7], np.repeat(1011, 4)))
def test_set_loc(self): t = Table('table_set_loc', dshape="{a: int, b: float32}", create=True) t.resize(20) ivalues = np.random.randint(100,size=20) t['a'] = ivalues fvalues = np.random.rand(20) t['b'] = fvalues t.loc[3:6] = [1001, 1002] self.assertTrue(np.array_equal(t._column(0)[3:7], np.repeat(1001, 4))) self.assertTrue(np.array_equal(t._column(1)[3:7], np.repeat(1002, 4))) t.loc[3:7] = 1003 self.assertTrue(np.array_equal(t._column(0)[3:8], np.repeat(1003, 5))) self.assertTrue(np.array_equal(t._column(1)[3:8], np.repeat(1003, 5))) t.loc[3:7,['a','b']] = [1004, 1005] self.assertTrue(np.array_equal(t._column(0)[3:8], np.repeat(1004, 5))) self.assertTrue(np.array_equal(t._column(1)[3:8], np.repeat(1005, 5))) t.iloc[3:7,['a','b']] = [1006, 1007] self.assertTrue(np.array_equal(t._column(0)[3:7], np.repeat(1006, 4))) self.assertTrue(np.array_equal(t._column(1)[3:7], np.repeat(1007, 4))) view = t.loc[2:11] view.loc[3:6] = [1008, 1009] self.assertTrue(np.array_equal(view._column(0)[ view.id_to_index(slice(3,6))], np.repeat(1008, 4))) self.assertTrue(np.array_equal(view._column(1)[ view.id_to_index(slice(3,6))], np.repeat(1009, 4))) self.assertTrue(np.array_equal(t._column(0)[3:7], np.repeat(1008, 4))) self.assertTrue(np.array_equal(t._column(1)[3:7], np.repeat(1009, 4))) view_view = view.loc[3:6] view_view.loc[3:6] = [1010, 1011] self.assertTrue(np.array_equal(view_view._column(0)[ view_view.id_to_index(slice(3,6))], np.repeat(1010, 4))) self.assertTrue(np.array_equal(view_view._column(1)[ view_view.id_to_index(slice(3,6))], np.repeat(1011, 4))) self.assertTrue(np.array_equal(t._column(0)[3:7], np.repeat(1010, 4))) self.assertTrue(np.array_equal(t._column(1)[3:7], np.repeat(1011, 4)))