示例#1
0
 def test_yaml(self):
     n = default_node()
     n_schema = n.to_yaml()
     print("result yaml", n_schema)
     g = Generator(schema=n_schema, protocol="yaml")
     ng = Node()
     g.walk(node=ng)
     print(ng)
     for p in ["a", "b", "c"]:
         orig = n.fetch(p).value()
         curr = ng.fetch(p).value()
         print(ng)
         print(p, orig, curr)
         orig = n[p]
         curr = ng[p]
         print(ng)
         print(p, orig, curr)
         self.assertEqual(orig, curr)
示例#2
0
    def test_to_string_and_friends(self):
        a_val = uint32(10)
        b_val = uint32(20)
        c_val = float64(30.0)
        n = Node()
        n['a'] = a_val
        n['b'] = b_val
        n['c'] = c_val
        s = n.schema()

        print("yaml rep")
        print(s.to_string("yaml"))

        print("json rep")
        print(s.to_string("json"))

        self.assertEqual(s.to_string("yaml"),s.to_yaml())
        self.assertEqual(s.to_string("json"),s.to_json())
示例#3
0
    def test_schema_child_rename(self):
        s = Schema()
        with self.assertRaises(Exception):
            s.rename_child('a', 'b')
        s["a"] = DataType.float64(10)
        s["b"] = DataType.float32(10)

        with self.assertRaises(Exception):
            s.rename_child('bad', 'good')

        with self.assertRaises(Exception):
            s.rename_child('b', 'a')

        s.rename_child("b", "c")
        n = Node()
        n.set(s)
        sr = n.schema()
        self.assertEqual(sr.total_strided_bytes(), 8 * 10 + 4 * 10)
        self.assertEqual(sr["a"].total_strided_bytes(), 8 * 10)
        self.assertEqual(sr["c"].total_strided_bytes(), 4 * 10)
示例#4
0
 def test_base64(self):
     n = default_node()
     print(n)
     n_schema = n.to_json("conduit_base64_json")
     print("result base64 json", n_schema)
     g = Generator(n_schema, "conduit_base64_json")
     ng = Node()
     g.walk(node=ng)
     print("Generator result")
     print(ng)
     for p in ["a", "b", "c"]:
         orig = n.fetch(p).value()
         curr = ng.fetch(p).value()
         print(ng)
         print(p, orig, curr)
         orig = n[p]
         curr = ng[p]
         print(ng)
         print(p, orig, curr)
         self.assertEqual(orig, curr)
示例#5
0
    def test_numeric_lists(self):
        n = Node()
        n["list_0"].set((1, 2, 3, 4))
        n["list_1"].set((1.0, 2.0, 3.0, 4.0))
        n["list_2"].set((1, 2, 3, 4.0))
        print(n)
        self.assertEqual(n['list_0'][0], 1)
        self.assertEqual(n['list_0'][1], 2)
        self.assertEqual(n['list_0'][2], 3)
        self.assertEqual(n['list_0'][3], 4)

        self.assertEqual(n['list_1'][0], 1.0)
        self.assertEqual(n['list_1'][1], 2.0)
        self.assertEqual(n['list_1'][2], 3.0)
        self.assertEqual(n['list_1'][3], 4.0)

        self.assertEqual(n['list_2'][0], 1.0)
        self.assertEqual(n['list_2'][1], 2.0)
        self.assertEqual(n['list_2'][2], 3.0)
        self.assertEqual(n['list_2'][3], 4.0)
示例#6
0
 def test_string(self):
     n = Node()
     n.set("my string!")
     print(n)
     self.assertEqual(n.value(), "my string!")
     # test numpy string
     nps = np.string_("my numpy string!")
     n.set(nps)
     print(n)
     print(repr(n))
     self.assertEqual(n.value(), "my numpy string!")
     aofstrs = np.array(["here", "are", "a", "few", "strings"])
     print(aofstrs)
     n.set(aofstrs)
     print(n)
     self.assertEqual(n[0], "here")
     self.assertEqual(n[1], "are")
     self.assertEqual(n[2], "a")
     self.assertEqual(n[3], "few")
     self.assertEqual(n[4], "strings")
示例#7
0
 def test_simple(self):
     n = default_node()
     n_schema = n.to_json("conduit_json")
     print("result detailed json", n_schema)
     g = Generator(schema=n_schema)
     ng = Node()
     sg = Schema()
     g.walk(node=ng)
     g.walk(schema=sg)
     print(ng)
     print(sg)
     for p in ["a", "b", "c"]:
         orig = n.fetch(p).value()
         curr = ng.fetch(p).value()
         print(ng)
         print(p, orig, curr)
         orig = n[p]
         curr = ng[p]
         print(ng)
         print(p, orig, curr)
         self.assertEqual(orig, curr)
示例#8
0
    def test_maps(self):
        maps = Node()
        
        # named args test
        maps["a"] = np.array([1.1415, 2.1415, 3.1415])
        maps["b"] = np.array([0,0,42])

        t = conduit.utils.format("something about {a:0.3} and {b:04}",
                                 maps=maps, map_index =2)
        print(t)
        self.assertTrue(t == "something about 3.14 and 0042")

        # ordered args test
        maps.reset()
        maps.append().set(np.array([1.1415, 2.1415, 3.1415]))
        maps.append().set(np.array([0,0,42]));

        t = conduit.utils.format("something about {:0.3} and {:04}",
                                 maps=maps,map_index =2)
        print(t)
        self.assertTrue(t == "something about 3.14 and 0042")

        #string list case
        maps.reset()
        slist = maps.append()
        slist.append().set("hi 0")
        slist.append().set("hi 1")
        slist.append().set("hi 2")
        
        t = conduit.utils.format("{} is it",maps=maps,map_index =0)
        print(t)
        self.assertTrue(t == "hi 0 is it")

        t = conduit.utils.format("{} is it",maps=maps,map_index =1)
        print(t)
        self.assertTrue(t == "hi 1 is it")

        t = conduit.utils.format("{} is it",maps=maps,map_index =2)
        print(t)
        self.assertTrue(t == "hi 2 is it")
    def test_to_string(self):
        a_val = np.uint32(10)
        b_val = np.uint32(20)
        c_val = np.float64(30.0)

        n = Node()
        n['a'] = a_val
        n['b'] = b_val
        n['c'] = c_val

        res_to_str_def = n.to_string()
        res_to_str_yaml = n.to_string(protocol="yaml")
        res_to_str_json = n.to_string(protocol="json")

        res_to_yaml = n.to_yaml()
        res_to_json = n.to_json()

        self.assertEqual(res_to_str_def, res_to_yaml)
        self.assertEqual(res_to_str_yaml, res_to_yaml)

        self.assertEqual(res_to_str_json, res_to_json)

        n.print_detailed()
示例#10
0
    def test_args(self):
        args = Node()
        # named args test
        args["a"] = "something about";
        args["b"] = "and";
        args["c"] = 3.1415;
        args["d"] = 42;

        t = conduit.utils.format("{a} {c:0.3} {b} {d:04}",
                                 args = args)
        print(t)
        self.assertTrue(t == "something about 3.14 and 0042")
        
        # ordered args test
        args.reset()
        args.append().set("something about")
        args.append().set(3.1415)
        args.append().set("and")
        args.append().set(42)

        t = conduit.utils.format("{} {:0.3} {} {:04}", args);
        print(t)
        self.assertTrue(t == "something about 3.14 and 0042")
示例#11
0
    def test_simple(self):
        a_val = uint32(10)
        b_val = uint32(20)
        c_val = float64(30.0)

        n = Node()
        n['a'] = a_val
        n['b'] = b_val
        n['c'] = c_val

        itr = NodeIterator()
        self.assertFalse(itr.has_next())
        itr = n.children()
        self.assertTrue(itr.has_next())
        print(itr.has_next())
        for v in itr:
            print(v.name(), v.node())
            idx = v.index()
            if idx == 0:
                self.assertEqual(v.node().value(), a_val)
            elif idx == 1:
                self.assertEqual(v.node().value(), b_val)
            elif idx == 2:
                self.assertEqual(v.node().value(), c_val)
示例#12
0
    def test_child_rename(self):
        a_val = np.uint32(10)
        b_val = np.uint32(20)

        n = Node()
        with self.assertRaises(Exception):
            n.rename_child('a', 'b')

        n['a'] = a_val
        n['b'] = b_val

        with self.assertRaises(Exception):
            n.rename_child('bad', 'good')

        with self.assertRaises(Exception):
            n.rename_child('b', 'a')

        self.assertTrue(n['a'] == a_val)
        self.assertTrue(n['b'] == b_val)

        n.rename_child('b', 'c')

        self.assertTrue(n['a'] == a_val)
        self.assertTrue(n['c'] == b_val)
 def test_parent(self):
     vec = array(range(100), uint32)
     n = Node()
     n['a'] = vec
     na = n.fetch('a')
     self.assertFalse(na.is_root())
示例#14
0
 def test_general_tuples(self):
     n = Node()
     n.set((1, "here"))
     print(n)
     self.assertEqual(n[0], 1.0)
     self.assertEqual(n[1], "here")
 def test_parse(self):
     n = Node()
     n.parse('{"a": 42.0}', "json")
     self.assertTrue(n['a'] == np.float64(42.0))
     n.parse('a: 52.0', "yaml")
     self.assertTrue(n['a'] == np.float64(52.0))
 def test_nested(self):
     val = uint32(10)
     n = Node()
     n['a']['b'] = val
     print(n['a']['b'])
     self.assertEqual(n['a']['b'], val)
 def test_vector(self):
     vec = array(range(100), uint32)
     n = Node()
     n['a'] = vec
     self.assertEqual(n['a'][99], 99)
示例#18
0
 def test_general_lists(self):
     n = Node()
     n.set([1, "there"])
     print(n)
     self.assertEqual(n[0], 1.0)
     self.assertEqual(n[1], "there")