def test_onnxt_zipmap_pickle(self): keys = ['a', 'b'] values = ['a1', 'b1'] zm = ZipMapDictionary(ZipMapDictionary.build_rev_keys(keys), values) by = pickle.dumps(zm) zm2 = pickle.loads(by) self.assertEqual(str(zm), str(zm2))
def test_onnxt_zipmap_mat_exc(self): keys = ['a', 'b'] values = numpy.array([['a1', 'b1']]) zm = ZipMapDictionary(ZipMapDictionary.build_rev_keys(keys), 0, values) def _set(): zm[6] = 'r' self.assertRaise(lambda: _set(), RuntimeError)
def test_ufunc(self): keys = ['a', 'b'] rk = ZipMapDictionary.build_rev_keys(keys) mat = numpy.array([[0, 1], [2, 3]]) uf = numpy.frompyfunc(lambda _, d=rk, m=mat: ZipMapDictionary(d, _, m), 1, 1) res = uf(numpy.arange(mat.shape[0])) self.assertEqual(res[0]['a'], 0) self.assertEqual(res[0]['b'], 1) self.assertEqual(res[1]['a'], 2) self.assertEqual(res[1]['b'], 3) df = pandas.DataFrame(list(res)) self.assertEqual(df.shape, (2, 2)) self.assertEqual(df.iloc[0, 1], 1)
def test_onnxt_arrayzipmap_mat(self): keys = ['a', 'b'] values = numpy.array([['a1', 'b1']]) azm = ArrayZipMapDictionary(ZipMapDictionary.build_rev_keys(keys), values) df = pandas.DataFrame(azm) self.assertEqual(df.shape, (1, 2)) items = list(azm) self.assertIsInstance(azm[0], ZipMapDictionary) self.assertIsInstance(items[0], ZipMapDictionary) d = items[0].asdict() self.assertEqual(d, {'a': 'a1', 'b': 'b1'}) self.assertEqual(list(items[0].items()), [('a', 'a1'), ('b', 'b1')]) self.assertEqual(len(azm), 1) def _set(): azm[0] = 5 self.assertRaise(lambda: _set(), RuntimeError) self.assertIsInstance(azm.values, numpy.ndarray) self.assertEqual(azm.columns, ['a', 'b'])
def test_onnxt_zipmap_mat(self): keys = ['a', 'b'] values = numpy.array([['a1', 'b1']]) zm = ZipMapDictionary(ZipMapDictionary.build_rev_keys(keys), 0, values) df = pandas.DataFrame([zm]) self.assertEqual(len(zm), 2) items = list(zm.items()) self.assertEqual(items, [('a', 'a1'), ('b', 'b1')]) for k in keys: self.assertIn(k, zm) self.assertEqual(list(df.columns), ['a', 'b']) self.assertEqual(list(sorted(zm.keys())), ['a', 'b']) self.assertEqual(list(sorted(zm.values())), ['a1', 'b1']) self.assertIn('a', zm) self.assertEqual(zm['a'], 'a1') self.assertEqual(zm['b'], 'b1') self.assertEqual(df.iloc[0, 0], 'a1') self.assertEqual(df.iloc[0, 1], 'b1')