def test(self): import copy original = DotMap() original.a = 1 original.b = 3 shallowCopy = original deepCopy = copy.deepcopy(original) self.assertEqual(original, shallowCopy) self.assertEqual(id(original), id(shallowCopy)) self.assertEqual(original, deepCopy) self.assertNotEqual(id(original), id(deepCopy)) original.a = 2 self.assertEqual(original, shallowCopy) self.assertNotEqual(original, deepCopy)
def test(self): m = DotMap() self.assertTrue(m.empty()) m.a = 1 self.assertFalse(m.empty()) self.assertTrue(m.b.empty()) self.assertIsInstance(m.b, DotMap)
def create_params(): p = DotMap() p.seed = 1 p.n = 2 p.k = 3 p.dt = .1 p.a = 1.0 p.b = 0.0 p.quad_coeffs = np.array([p.a, p.a, p.a, p.b, p.b], dtype=np.float32) p.linear_coeffs = np.array([0.0, 0.0, 0.0, 0.0, 0.0], dtype=np.float32) return p
def test_order_preserved(self): import copy original = DotMap() original.a = 1 original.b = 2 original.c = 3 deepCopy = copy.deepcopy(original) orderedPairs = [] for k, v in original.iteritems(): orderedPairs.append((k, v)) for i, (k, v) in enumerate(deepCopy.iteritems()): self.assertEqual(k, orderedPairs[i][0]) self.assertEqual(v, orderedPairs[i][1])
def test_eq(self): d = DotMap(self._get_dict()) m = DotMap() m.people.john.age = 32 m.people.john.job = 'programmer' m.people.mary.age = 24 m.people.mary.job = 'designer' m.people.dave.age = 55 m.people.dave.job = 'manager' self.assertNotEqual(d, m) m.clear() m.a = 1 m.b = 2 m.subD.c = 3 m.subD.d = 4 self.assertEqual(d, m)
def test(self): m = DotMap() m.a = 5 m_id = id(m) m.recursive = m self.assertEqual(id(m.recursive.recursive.recursive), m_id) self.assertEqual(str(m), '''DotMap(a=5, recursive=DotMap(...))''') d = m.toDict() d_id = id(d) d['a'] = 5 d['recursive'] = d d['recursive']['recursive']['recursive'] self.assertEqual(id(d['recursive']['recursive']['recursive']), d_id) self.assertEqual(str(d), '''{'a': 5, 'recursive': {...}}''') m2 = DotMap(d) m2_id = id(m2) self.assertEqual(id(m2.recursive.recursive.recursive), m2_id) self.assertEqual(str(m2), '''DotMap(a=5, recursive=DotMap(...))''')
def test(self): m = DotMap() m.a = 5 m_id = id(m) m.recursive = m self.assertEqual(id(m.recursive.recursive.recursive), m_id) outStr = str(m) self.assertIn('''a=5''', outStr) self.assertIn('''recursive=DotMap(...)''', outStr) d = m.toDict() d_id = id(d) d['a'] = 5 d['recursive'] = d d['recursive']['recursive']['recursive'] self.assertEqual(id(d['recursive']['recursive']['recursive']), d_id) outStr = str(d) self.assertIn(''''a': 5''', outStr) self.assertIn('''recursive': {...}''', outStr) m2 = DotMap(d) m2_id = id(m2) self.assertEqual(id(m2.recursive.recursive.recursive), m2_id) self.assertEqual(str(m2), '''DotMap(a=5, recursive=DotMap(...))''')
import pickle s = pickle.dumps(parent) d = pickle.loads(s) print(d) # init from DotMap print('\n== init from DotMap ==') e = DotMap(d) print(e) # empty print('\n== empty() ==') d = DotMap() print(d.empty()) d.a = 1 print(d.empty()) print() x = DotMap({'a': 'b'}) print(x.b.empty()) # True (and creates empty DotMap) print(x.b) # DotMap() print(x.b.empty()) # also True d = {'sub': {'a': 1}} dm = DotMap(d) print(dm) dm.still.works dm.sub.still.works print(dm) dm2 = DotMap(d)
def test_setdefault(self): d = DotMap() d.a = 'c' self.assertEqual('c', d.setdefault('a', 'd')) self.assertEqual('d', d.setdefault('b', 'd'))
#! /usr/bin/python2.7 import sys import numpy as np from dotmap import DotMap def change_the_values(dm): dm.a = 6 dm.b[3] = 10 dm = DotMap() dm.a = 5 dm.b = np.random.randint(0, 2, (6, )) print("before the change") print("dm.a: {}".format(dm.a)) print("dm.b: {}".format(dm.b)) change_the_values(dm) print("after the change") print("dm.a: {}".format(dm.a)) print("dm.b: {}".format(dm.b))