def test_index_creation_a(self) -> None: idx = Index(('a', 'b', 'c', 'd')) #idx2 = idx['b':'d'] self.assertEqual(idx.values.tolist(), ['a', 'b', 'c', 'd']) self.assertEqual(idx[2:].values.tolist(), ['c', 'd']) #type: ignore self.assertEqual( idx.loc['b':].values.tolist(), ['b', 'c', 'd' ]) # type: ignore # https://github.com/python/typeshed/pull/3024 self.assertEqual( idx.loc['b':'d'].values.tolist(), ['b', 'c', 'd' ]) # type: ignore # https://github.com/python/typeshed/pull/3024 self.assertEqual(idx.loc_to_iloc(['b', 'b', 'c']), [1, 1, 2]) self.assertEqual(idx.loc['c'], 'c') idxgo = IndexGO(('a', 'b', 'c', 'd')) self.assertEqual(idxgo.values.tolist(), ['a', 'b', 'c', 'd']) idxgo.append('e') self.assertEqual(idxgo.values.tolist(), ['a', 'b', 'c', 'd', 'e']) idxgo.extend(('f', 'g')) self.assertEqual(idxgo.values.tolist(), ['a', 'b', 'c', 'd', 'e', 'f', 'g'])
def test_index_go_append(self, values: tp.Sequence[tp.Hashable]) -> None: index = IndexGO(values[:-1]) length_start = len(index) index.append(values[-1]) length_end = len(index) self.assertEqual(length_start + 1, length_end)
def test_index_copy_a(self) -> None: idx1 = IndexGO(('a', 'b', 'c')) idx1.append('d') idx2 = idx1.copy() idx2.append('e') self.assertEqual(idx2.values.tolist(), ['a', 'b', 'c', 'd', 'e']) self.assertEqual(idx1.values.tolist(), ['a', 'b', 'c', 'd'])
def test_index_creation_a(self): idx = Index(('a', 'b', 'c', 'd')) #idx2 = idx['b':'d'] self.assertEqual(idx.values.tolist(), ['a', 'b', 'c', 'd']) self.assertEqual(idx[2:].values.tolist(), ['c', 'd']) self.assertEqual(idx.loc['b':].values.tolist(), ['b', 'c', 'd']) self.assertEqual(idx.loc['b':'d'].values.tolist(), ['b', 'c', 'd']) self.assertEqual(idx.loc_to_iloc(['b', 'b', 'c']), [1, 1, 2]) self.assertEqual(idx.loc['c'].values.tolist(), ['c']) idxgo = IndexGO(('a', 'b', 'c', 'd')) self.assertEqual(idxgo.values.tolist(), ['a', 'b', 'c', 'd']) idxgo.append('e') self.assertEqual(idxgo.values.tolist(), ['a', 'b', 'c', 'd', 'e']) idxgo.extend(('f', 'g')) self.assertEqual(idxgo.values.tolist(), ['a', 'b', 'c', 'd', 'e', 'f', 'g'])
def test_index_go_append(self, values): index = IndexGO(values[:-1]) length_start = len(index) index.append(values[-1]) length_end = len(index) self.assertEqual(length_start + 1, length_end)
def test_index_go_b(self) -> None: index = IndexGO(('a', 'b', 'c')) index.append('d') self.assertEqual(len(index.__slots__), 8) self.assertFalse(index.STATIC) self.assertEqual(index._IMMUTABLE_CONSTRUCTOR, Index) self.assertEqual(Index._MUTABLE_CONSTRUCTOR, IndexGO)
def test_index_extract_iloc_a(self) -> None: idx = IndexGO(('a', 'b', 'c', 'd')) idx.append('e') post = idx._extract_iloc(slice(None)) self.assertEqual( post.values.tolist(), #type: ignore ['a', 'b', 'c', 'd', 'e'])
def test_index_via_str_b(self) -> None: idx1 = IndexGO(('a', 'b', 'c', 'd', 'e')) idx1.append('f') idx1.append('g') a1 = idx1.via_str.upper() self.assertEqual(a1.tolist(), ['A', 'B', 'C', 'D', 'E', 'F', 'G'])
def test_index_union_a(self) -> None: idx1 = IndexGO(('a', 'b', 'c', 'd', 'e')) idx1.append('f') a1 = np.array(['c', 'dd', 'b', 'a']) idx2 = idx1.union(a1) self.assertEqual(idx2.values.tolist(), ['a', 'b', 'c', 'd', 'dd', 'e', 'f'])
def test_index_name_c(self) -> None: idx1 = IndexGO(('a', 'b', 'c', 'd'), name='foo') self.assertEqual(idx1.name, 'foo') idx2 = idx1.rename('bar') self.assertEqual(idx2.name, 'bar') idx1.append('e') idx2.append('x') self.assertEqual(idx1.values.tolist(), ['a', 'b', 'c', 'd', 'e']) self.assertEqual(idx2.values.tolist(), ['a', 'b', 'c', 'd', 'x'])
def test_index_grow_only_a(self) -> None: index = IndexGO(('a', 'b', 'c')) index.append('d') self.assertEqual(index.loc_to_iloc('d'), 3) index.extend(('e', 'f')) self.assertEqual(index.loc_to_iloc('e'), 4) self.assertEqual(index.loc_to_iloc('f'), 5) # creating an index form an Index go takes the np arrays, but not the mutable bits index2 = Index(index) index.append('h') self.assertEqual(len(index2), 6) self.assertEqual(len(index), 7) index3 = index[2:] index3.append('i') self.assertEqual(index3.values.tolist(), ['c', 'd', 'e', 'f', 'h', 'i']) self.assertEqual(index.values.tolist(), ['a', 'b', 'c', 'd', 'e', 'f', 'h'])
def test_index_go_e(self) -> None: index = IndexGO((), loc_is_iloc=True) index.append(0) self.assertTrue(index._map is None) index.append(1) self.assertTrue(1 in index) self.assertFalse('a' in index) self.assertTrue(index._map is None) index.append(-1) self.assertFalse(index._map is None) self.assertTrue(-1 in index) self.assertTrue(1 in index)
def test_index_drop_iloc_b(self) -> None: idx = IndexGO(('a', 'b', 'c', 'd')) idx.append('e') post = idx._drop_iloc(None) self.assertEqual(post.values.tolist(), ['a', 'b', 'c', 'd', 'e'])
def test_index_go_c(self) -> None: index = IndexGO(('a', (2, 5), 'c')) with self.assertRaises(KeyError): index.append((2, 5))
def test_index_bool_b(self) -> None: idx1 = IndexGO(()) self.assertFalse(bool(idx1)) idx1.append('a') self.assertTrue(bool(idx1))
def test_index_ndim_a(self) -> None: idx = IndexGO(('a', 'b', 'c', 'd')) self.assertEqual(idx.ndim, 1) idx.append('e') self.assertEqual(idx.ndim, 1)
def test_index_reversed_a(self) -> None: idx1 = IndexGO(('a', 'b', 'c'), name='foo') idx1.append('d') self.assertEqual(list(reversed(idx1)), ['d', 'c', 'b', 'a'])
def test_index_unary_operators_b(self) -> None: idx = IndexGO((20, 30, 40)) idx.append(50) a1 = -idx self.assertEqual(a1.tolist(), [-20, -30, -40, -50])
def test_index_mloc_b(self) -> None: idx = IndexGO(('a', 'b', 'c', 'd')) idx.append('e') self.assertTrue(idx.mloc == idx[:2].mloc) #type: ignore
def test_index_dtype_a(self) -> None: idx = IndexGO(('a', 'b', 'c', 'd')) self.assertEqual(str(idx.dtype), '<U1') idx.append('eee') self.assertEqual(str(idx.dtype), '<U3')
def test_index_rename_a(self) -> None: idx1 = IndexGO(('a', 'b', 'c', 'd'), name='foo') idx1.append('e') idx2 = idx1.rename('bar') self.assertEqual(idx2.name, 'bar')
def test_index_nbytes_a(self) -> None: idx = IndexGO(('a', 'b', 'c', 'd')) self.assertEqual(idx.nbytes, 16) idx.append('e') self.assertEqual(idx.nbytes, 20)
def test_index_size_a(self) -> None: idx = IndexGO(('a', 'b', 'c', 'd')) self.assertEqual(idx.size, 4) idx.append('e') self.assertEqual(idx.size, 5)
def test_index_ufunc_axis_b(self) -> None: idx = IndexGO((30, 40, 20)) idx.append(10) self.assertEqual(idx.sum(), 100)
def test_index_iter_a(self) -> None: idx1 = IndexGO(('a', 'b', 'c'), name='foo') idx1.append('d') self.assertEqual(list(idx1), ['a', 'b', 'c', 'd'])
def test_index_equals_f(self) -> None: a = IndexGO([1, 2, 3]) b = IndexGO([1, 2, 3]) b.append(4) self.assertFalse(a.equals(b))
def test_index_positions_a(self) -> None: idx1 = IndexGO(('a', 'b', 'c', 'd'), name='foo') self.assertEqual(idx1.positions.tolist(), list(range(4))) idx1.append('e') self.assertEqual(idx1.positions.tolist(), list(range(5)))
def test_index_shape_a(self) -> None: idx = IndexGO(('a', 'b', 'c', 'd')) self.assertEqual(idx.shape, (4, )) idx.append('e') self.assertEqual(idx.shape, (5, ))