示例#1
0
 def test__pop(self):
     init = self.__class__.test_parameters
     P = JSONParameterSet(init)
     self.assertEqual(P.pop('a'), 2)
     self.assertEqual(P.pop('c'), {"a": 1, "b": 2})
     self.assertEqual(P.as_dict(), {'b': "hello", "d": [1, 2, 3, 4]})
     self.assertEqual(P.pop('foo', 42), 42)
     self.assertEqual(P.pop('foo', None), None)
示例#2
0
 def test__init__should_accept_a_filename_or_string(self):
     init = self.__class__.test_parameters
     P1 = JSONParameterSet(init)
     with open("test_file", "w") as f:
         f.write(init)
     P2 = JSONParameterSet("test_file")
     self.assertEqual(P1.as_dict(), P2.as_dict())
     os.remove("test_file")
示例#3
0
 def test_save(self):
     init = self.__class__.test_parameters
     P1 = JSONParameterSet(init)
     P1.save("test_file")
     P2 = JSONParameterSet("test_file")
     self.assertEqual(P1.as_dict(), P2.as_dict())
     os.remove("test_file")
示例#4
0
 def test_diff(self):
     P1 = JSONParameterSet(self.__class__.test_parameters)
     P2 = JSONParameterSet(dedent("""
     {
         "a" : 3,
         "b" : "hello",
         "c" : {"a": 1, "b": 22},
         "d" : [1, 2, 77, 4]
     }
     """))
     self.assertEqual(P1.diff(P2),
                      ({'a': 2, 'c': {'b': 2}, 'd': [1, 2, 3, 4]},
                       {'a': 3, 'c': {'b': 22}, 'd': [1, 2, 77, 4]}))
     P3 = YAMLParameterSet(TestYAMLParameterSet.test_parameters)
     self.assertEqual(P2.diff(P3), P2.diff(P1))
示例#5
0
 def test_diff(self):
     P1 = JSONParameterSet(self.__class__.test_parameters)
     P2 = JSONParameterSet(
         dedent("""
     {
         "a" : 3,
         "b" : "hello",
         "c" : {"a": 1, "b": 22},
         "d" : [1, 2, 77, 4]
     }
     """))
     self.assertEqual(P1.diff(P2), ({
         'a': 2,
         'c': {
             'b': 2
         },
         'd': [1, 2, 3, 4]
     }, {
         'a': 3,
         'c': {
             'b': 22
         },
         'd': [1, 2, 77, 4]
     }))
     try:
         P3 = YAMLParameterSet(TestYAMLParameterSet.test_parameters)
     except ImportError:
         pass
     else:
         self.assertEqual(P2.diff(P3), P2.diff(P1))
示例#6
0
 def test_diff(self):
     P1 = SimpleParameterSet("x = 2\ny = 3")
     P2 = SimpleParameterSet("x = 3\ny = 3\nz = 4")
     self.assertEqual(P1.diff(P2), ({'x': 2}, {'x': 3, 'z': 4}))
     P3 = JSONParameterSet(
         dedent("""
             {
                 "x" : 2,
                 "y" : 4,
                 "z": 4
             }"""))
     self.assertEqual(P1.diff(P3), ({'y': 3}, {'y': 4, 'z': 4}))
示例#7
0
 def test_save(self):
     init = self.__class__.test_parameters
     P1 = JSONParameterSet(init)
     P1.save("test_file")
     P2 = JSONParameterSet("test_file")
     self.assertEqual(P1.as_dict(), P2.as_dict())
     os.remove("test_file")
示例#8
0
 def setUp(self):
     ## setup parsets with legal params
     self.PSETS = [SimpleParameterSet(""), JSONParameterSet("")]
     try:
         self.PSETS.append(YAMLParameterSet(""))
     except ImportError:
         pass
     self.PConfigParser = ConfigParserParameterSet("")
     for k in ('a', 'b', 'c', 'd', 'l', 'save'):
         up_dict = {k: 1}
         self.PConfigParser.update(up_dict)
         for P in self.PSETS:
             P.update(up_dict)
示例#9
0
 def test__init__should_accept_a_filename_or_string(self):
     init = self.__class__.test_parameters
     P1 = JSONParameterSet(init)
     with open("test_file", "w") as f:
         f.write(init)
     P2 = JSONParameterSet("test_file")
     self.assertEqual(P1.as_dict(), P2.as_dict())
     os.remove("test_file")
示例#10
0
 def test__pop(self):
     init = self.__class__.test_parameters
     P = JSONParameterSet(init)
     self.assertEqual(P.pop('a'), 2)
     self.assertEqual(P.pop('c'), {"a": 1, "b": 2})
     self.assertEqual(P.as_dict(), {'b': "hello", "d": [1, 2, 3, 4]})
     self.assertEqual(P.pop('foo', 42), 42)
     self.assertEqual(P.pop('foo', None), None)
示例#11
0
 def test__update(self):
     P = JSONParameterSet(self.__class__.test_parameters)
     P.update([("x", 1), ("y", 2)], z=3)
     self.assertEqual(P["x"], 1)
     self.assertEqual(P["z"], 3)
示例#12
0
 def test__pretty__output_should_be_useable_to_create_an_identical_parameterset(
         self):
     init = self.__class__.test_parameters
     P1 = JSONParameterSet(init)
     P2 = JSONParameterSet(P1.pretty())
     self.assertEqual(P1.as_dict(), P2.as_dict())
示例#13
0
 def test__pretty__output_should_be_useable_to_create_an_identical_parameterset(self):
     init = self.__class__.test_parameters
     P1 = JSONParameterSet(init)
     P2 = JSONParameterSet(P1.pretty())
     self.assertEqual(P1.as_dict(), P2.as_dict())
示例#14
0
 def test__str(self):
     init = self.__class__.test_parameters
     P = JSONParameterSet(init)
     as_string = str(P)
     self.assertIsInstance(as_string, str)
示例#15
0
 def test__init__should_accept_an_empty_initializer(self):
     P = JSONParameterSet("")
     self.assertEqual(P.as_dict(), {})
示例#16
0
 def test__init__should_accept_an_empty_initializer(self):
     P = JSONParameterSet("")
     self.assertEqual(P.as_dict(), {})
示例#17
0
 def test__update(self):
     P = JSONParameterSet(self.__class__.test_parameters)
     P.update([("x", 1), ("y", 2)], z=3)
     self.assertEqual(P["x"], 1)
     self.assertEqual(P["z"], 3)