Exemplo n.º 1
0
    def test_append(self):
        genders = EZDict()
        manual = {}
        for item in small_data:
            genders.appender(EZDict(item).gender, item)

            if item["gender"] in manual:
                manual[item["gender"]].append(item)
            else:
                manual[item["gender"]] = [item]

        self.assertEqual(manual, genders)
Exemplo n.º 2
0
    def test_increment(self):
        genders = EZDict()
        manual = {}
        for item in small_data:
            genders.incrementer(EZDict(item).gender)

            if item["gender"] in manual:
                manual[item["gender"]] += 1
            else:
                manual[item["gender"]] = 1

        self.assertEqual(manual, genders)
Exemplo n.º 3
0
    def test_group_by_flat(self):
        l = [i % 3 for i in range(12)]
        ez = EZDict()
        for item in l:
            ez.appender(item, item)

        self.assertEqual(ez, Query("$group_by").single(l))
Exemplo n.º 4
0
 def test_arith_basic(self):
     data = EZDict({"a": 4, "b": -4, "c": 2.5, "d": [3, 4], "e": 0, "pi": 3.1415926})
     self.assertEqual(data.a + data.b + data.c, Query("a.$arith('+', @b + @c)").single(data))
     self.assertEqual(data.a + data.b - data.c, Query("a.$arith('+', @b - @c)").single(data))
     self.assertEqual(data.a + data.b * data.c, Query("a.$arith('+', @b * @c)").single(data))
     self.assertEqual(data.a + data.b / data.c, Query("a.$arith('+', @b / @c)").single(data))
     self.assertEqual(data.a + data.b ** data.c, Query("a.$arith('+', @b ** @c)").single(data))
     self.assertEqual(data.a + data.b // data.c, Query("a.$arith('+', @b // @c)").single(data))
     self.assertEqual(data.a + data.b % data.c, Query("a.$arith('+', @b % @c)").single(data))
Exemplo n.º 5
0
    def test_group_by_number(self):
        data = [[i, i] for i in range(10)]
        ez = EZDict()
        for item in data:
            ez.appender(item[0], item)

        self.assertEqual(
            ez,
            Query("$group_by(0)").single(data)
        )
Exemplo n.º 6
0
 def test_math_args(self):
     data = EZDict({"a": 4, "b": -4, "c": 2.5, "d": [3, 4], "e": 0, "pi": 3.1415926})
     self.assertEqual(
         data.a / (data.b + data.c) - data.pi,
         Query("$inject(@a / (@b + @c) - @pi)").single(data)
     )
     self.assertEqual(
         data.a + data.b * data.c ** data.e,
         Query("$inject(@a + @b * @c ** @e)").single(data)
     )
     self.assertEqual(
         (data.a + data.b) * data.c ** data.e,
         Query("$inject((@a + @b) * @c ** @e)").single(data)
     )
Exemplo n.º 7
0
 def test_sort_nested_reverse(self):
     self.assertEqual(
         sorted(small_data, key=lambda x: EZDict(x).favoriteFruit.banana * -0.5, reverse=True),
         Query("$sort('favoriteFruit.banana.$multiply(-0.5)', true)").single(small_data)
     )
Exemplo n.º 8
0
    def test_group_by_nested_count(self):
        ez = EZDict()
        for item in small_data:
            ez.incrementer(round(EZDict(item).favoriteFruit.apple, 1))

        self.assertEqual(ez, Query("$group_by('favoriteFruit.apple.$round(1)', true)").single(small_data))
Exemplo n.º 9
0
    def test_group_by_nested(self):
        ez = EZDict()
        for item in small_data:
            ez.appender(round(EZDict(item).favoriteFruit.apple, 1), item)

        self.assertEqual(ez, Query("$group_by('favoriteFruit.apple.$round(1)')").single(small_data))
Exemplo n.º 10
0
 def test_double_nested(self):
     self.assertEqual(small_data[0]["favoriteFruit"]["apple"],
                      EZDict(small_data[0]).favoriteFruit.apple)
Exemplo n.º 11
0
 def test_single_nested(self):
     self.assertEqual(small_data[0]["friends"],
                      EZDict(small_data[0]).friends)
Exemplo n.º 12
0
 def test_from_nested(self):
     self.assertEqual(dict(small_data[0]), EZDict(small_data[0]))
Exemplo n.º 13
0
 def test_from_seq(self):
     seq = [(str(i), i) for i in range(10)]
     self.assertEqual(dict(seq), EZDict(seq))
Exemplo n.º 14
0
 def test_from_dict(self):
     data = {str(i): i for i in range(10)}
     self.assertEqual(dict(data), EZDict(data))
Exemplo n.º 15
0
 def test_empty(self):
     self.assertEqual({}, EZDict())