def test_merge_not_in_place(self): b1 = Box() b2 = Box() dct = get_dct() b1.add(dct, 'test', 7) b2.add(dct, 'test2', 8) b3 = b1.merge(b2, in_place=False) expected = [{ 'index': 0, 'independent': { 'a': 1, 'b': 2 }, 'dependent': { 'test': 7 } }, { 'index': 1, 'independent': { 'a': 1, 'b': 2 }, 'dependent': { 'test2': 8 } }] self.assertListEqual(b3, expected)
def test_minimal(self): b = Box() dct = get_dct() b.add(dct, 'test', 7) b.add(dct, 'test2', 8) minimal = b.minimal() expected = [{'a': 1, 'b': 2, 'test': 7, 'test2': 8}] self.assertEqual(minimal, expected)
def test_filtered(self): b = Box() dct = get_dct() b.add(dct, 'test', 7) b.add(dct, 'test2', 8) dct['b'] = 3 b.add(dct, 'test2', 9) dct['b'] = 6 b.add(dct, 'test', 11) expected = [{ 'index': 1, 'independent': { 'a': 1, 'b': 2 }, 'dependent': { 'test2': 8 } }, { 'index': 2, 'independent': { 'a': 1, 'b': 3 }, 'dependent': { 'test2': 9 } }] ret = b.filtered('test2') self.assertEqual(ret, expected) ret = b.filtered(['test2']) self.assertEqual(ret, expected)
def test_add(self): b = Box() dct = get_dct() b.add(dct, 'test', 7) self.assertEqual(len(b), 1) expected = { 'index': 0, 'independent': { 'a': 1, 'b': 2 }, 'dependent': { 'test': 7 } } self.assertEqual(b[0], expected)
def test_combined(self): b = Box() dct = get_dct() b.add(dct, 'test', 7) b.add(dct, 'test2', 8) combined = b.combined() expected = [{ 'independent': { 'a': 1, 'b': 2 }, 'dependent': { 'test': 7, 'test2': 8 } }] self.assertEqual(combined, expected)
def test_add_arr(self): b = Box() dct = get_dct() var = Variable('a', components=['x', 'y', 'z']) val = [[0, 1], [2, 3], [4, 5]] b.add(dct, var, val) self.assertEqual(len(b), 1) expected = { 'index': 0, 'independent': { 'a': 1, 'b': 2 }, 'dependent': { 'a': val } } self.assertEqual(b[0], expected)
def test_where(self): b = Box() dct = get_dct() b.add(dct, 'test', 7) b.add(dct, 'test2', 8) dct['b'] = 3 b.add(dct, 'test', 9) b.add(dct, 'test2', 11) expected = [{'index': 2, 'independent': {'a': 1, 'b': 3},\ 'dependent': {'test': 9}}, {'index': 3, 'independent': {'a': 1, 'b': 3}, 'dependent': {'test2': 11}}] ret = b.where({'b': 3}) self.assertEqual(ret, expected) ret = b.where(b=3) self.assertEqual(ret, expected)