Пример #1
0
 def test_nested_logic_list(self):
     q2 = self.example_data_A_data['q2']
     test_logic = intersection(
         [union([has_all([1, 2]), has_any([3, 4])]),
          has_count([3])])
     idx, vkey = get_logic_index(q2, test_logic)
     idx1, vkey1 = get_logic_index(q2, has_all([1, 2]))
     idx2, vkey2 = get_logic_index(q2, has_any([3, 4]))
     idx3, vkey3 = get_logic_index(q2, has_count([3]))
     self.assertItemsEqual(idx, idx1.union(idx2).intersection(idx3))
     self.assertEqual(vkey, 'x[(({1&2},{3,4})&{3})]:y')
Пример #2
0
    def test_get_logic_key(self):

        logic = has_all([1, 2, 3], True)
        self.assertEqual(
            get_logic_key(logic),
            'x[e{1&2&3}]:y'
        )

        logic = has_count([is_ge(1), [5, 6, 7, 8, 9]])
        self.assertEqual(
            get_logic_key(logic),
            'x[(5,6,7,8,9){>=1}]:y'
        )

        logic = not_count([is_ge(1), [5, 6, 7, 8, 9]])
        self.assertEqual(
            get_logic_key(logic),
            'x[(5,6,7,8,9)~{>=1}]:y'
        )

        logic = union([
            has_any([1, 2]),
            has_all([3, 4]),
            not_any([5, 6])
        ])
        self.assertEqual(
            get_logic_key(logic),
            'x[({1,2},{3&4},~{5,6})]:y'
        )

        logic = union([
            intersection([
                has_any([1, 2]),
                not_any([3])
            ]),
            {'Wave': has_any([1,2])}
        ])
        self.assertEqual(
            get_logic_key(logic, self.example_data_A_data),
            'x[(({1,2}&~{3}),Wave={1,2})]:y'
        )
Пример #3
0
 def test_get_logic_key(self):
     
     logic = has_all([1, 2, 3], True)
     self.assertEqual(
         get_logic_key(logic),
         'x[e(1&2&3)]:y'
     )
     
     logic = has_count([is_ge(1), [5, 6, 7, 8, 9]])
     self.assertEqual(
         get_logic_key(logic),
         'x[(5,6,7,8,9){>=1}]:y'
     )
     
     logic = not_count([is_ge(1), [5, 6, 7, 8, 9]])
     self.assertEqual(
         get_logic_key(logic),
         'x[(5,6,7,8,9)~{>=1}]:y'
     )
     
     logic = union([
         has_any([1, 2]), 
         has_all([3, 4]), 
         not_any([5, 6])
     ])
     self.assertEqual(
         get_logic_key(logic),
         'x[((1,2),(3&4),~(5,6))]:y'
     )
     
     logic = union([
         intersection([
             has_any([1, 2]),
             not_any([3])
         ]),
         {'Wave': has_any([1,2])}
     ])
     self.assertEqual(
         get_logic_key(logic, self.example_data_A_data),
         'x[(((1,2)&~(3)),Wave=(1,2))]:y'
     )
Пример #4
0
    def test_get_logic_key(self):

        logic = has_all([1, 2, 3], True)
        self.assertEqual(get_logic_key(logic), 'x[e(1&2&3)]:y')

        logic = has_count([is_ge(1), [5, 6, 7, 8, 9]])
        self.assertEqual(get_logic_key(logic), 'x[(5,6,7,8,9){>=1}]:y')

        logic = not_count([is_ge(1), [5, 6, 7, 8, 9]])
        self.assertEqual(get_logic_key(logic), 'x[(5,6,7,8,9)~{>=1}]:y')

        logic = union([has_any([1, 2]), has_all([3, 4]), not_any([5, 6])])
        self.assertEqual(get_logic_key(logic), 'x[((1,2),(3&4),~(5,6))]:y')

        logic = union([
            intersection([has_any([1, 2]), not_any([3])]), {
                'Wave': has_any([1, 2])
            }
        ])
        self.assertEqual(get_logic_key(logic, self.example_data_A_data),
                         'x[(((1,2)&~(3)),Wave=(1,2))]:y')
Пример #5
0
    def test_logic_list(self):
        q2 = self.example_data_A_data['q2']
        test_logic = union([has_all([1, 2]), has_any([3, 4]), has_count([3])])
        idx, vkey = get_logic_index(q2, test_logic)
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertCountEqual(idx, idx1.union(idx2).union(idx3))
        self.assertEqual(vkey, 'x[({1&2},{3,4},{3})]:y')

        q2 = self.example_data_A_data['q2']
        test_logic = intersection(
            [has_all([1, 2]), has_any([3, 4]),
             has_count([3])])
        idx, vkey = get_logic_index(q2, test_logic)
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertCountEqual(idx, idx1.intersection(idx2).intersection(idx3))
        self.assertEqual(vkey, 'x[({1&2}&{3,4}&{3})]:y')

        q2 = self.example_data_A_data['q2']
        test_logic = difference(
            [has_all([1, 2]), has_any([3, 4]),
             has_count([3])])
        idx, vkey = get_logic_index(q2, test_logic)
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertCountEqual(idx, idx1.difference(idx2).difference(idx3))
        self.assertEqual(vkey, 'x[({1&2}~{3,4}~{3})]:y')

        q2 = self.example_data_A_data['q2']
        test_logic = symmetric_difference(
            [has_all([1, 2]), has_any([3, 4]),
             has_count([3])])
        idx, vkey = get_logic_index(q2, test_logic)
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        if pd.__version__ == '0.19.2':
            self.assertCountEqual(
                idx,
                idx1.symmetric_difference(idx2).symmetric_difference(idx3))
        else:
            self.assertCountEqual(
                idx,
                idx1.symmetric_difference(idx2).symmetric_difference(idx3))
        self.assertEqual(vkey, 'x[({1&2}^{3,4}^{3})]:y')
Пример #6
0
    def test_logic_list(self):
        q2 = self.example_data_A_data['q2']
        test_logic = union([has_all([1, 2]), has_any([3, 4]), has_count([3])])
        idx, vkey = get_logic_index(q2, test_logic)
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertItemsEqual(idx, idx1.union(idx2).union(idx3))
        self.assertEqual(vkey, 'x[((1&2),(3,4),{3})]:y')

        q2 = self.example_data_A_data['q2']
        test_logic = intersection(
            [has_all([1, 2]), has_any([3, 4]),
             has_count([3])])
        idx, vkey = get_logic_index(q2, test_logic)
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertItemsEqual(idx, idx1.intersection(idx2).intersection(idx3))
        self.assertEqual(vkey, 'x[((1&2)&(3,4)&{3})]:y')

        q2 = self.example_data_A_data['q2']
        test_logic = difference(
            [has_all([1, 2]), has_any([3, 4]),
             has_count([3])])
        idx, vkey = get_logic_index(q2, test_logic)
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertItemsEqual(idx, idx1.difference(idx2).difference(idx3))
        self.assertEqual(vkey, 'x[((1&2)~(3,4)~{3})]:y')

        q2 = self.example_data_A_data['q2']
        test_logic = sym_diff(
            [has_all([1, 2]), has_any([3, 4]),
             has_count([3])])
        idx, vkey = get_logic_index(q2, test_logic)
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertItemsEqual(idx, idx1.sym_diff(idx2).sym_diff(idx3))
        self.assertEqual(vkey, 'x[((1&2)^(3,4)^{3})]:y')
Пример #7
0
 def test_nested_logic_list(self):
     q2 = self.example_data_A_data['q2']       
     test_logic = intersection([
         union([
             has_all([1, 2]),
             has_any([3, 4])
         ]),
         has_count([3])
     ])
     idx, vkey = get_logic_index(q2, test_logic)
     idx1, vkey1 = get_logic_index(q2, has_all([1, 2]))
     idx2, vkey2 = get_logic_index(q2, has_any([3, 4]))
     idx3, vkey3 = get_logic_index(q2, has_count([3]))
     self.assertItemsEqual(
         idx,
         idx1.union(idx2).intersection(idx3)
     )
     self.assertEqual(
         vkey,
         'x[(((1&2),(3,4))&{3})]:y'
     )
Пример #8
0
    def test_logic_list(self):
        q2 = self.example_data_A_data['q2']       
        test_logic = union([
            has_all([1, 2]),
            has_any([3, 4]),
            has_count([3])
        ])
        idx, vkey = get_logic_index(q2, test_logic)  
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertItemsEqual(
            idx,
            idx1.union(idx2).union(idx3)
        )
        self.assertEqual(
            vkey,
            'x[((1&2),(3,4),{3})]:y'
        )

        q2 = self.example_data_A_data['q2']       
        test_logic = intersection([
            has_all([1, 2]),
            has_any([3, 4]),
            has_count([3])
        ])
        idx, vkey = get_logic_index(q2, test_logic)        
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertItemsEqual(
            idx,
            idx1.intersection(idx2).intersection(idx3)
        )
        self.assertEqual(
            vkey,
            'x[((1&2)&(3,4)&{3})]:y'
        )

        q2 = self.example_data_A_data['q2']       
        test_logic = difference([
            has_all([1, 2]),
            has_any([3, 4]),
            has_count([3])
        ])
        idx, vkey = get_logic_index(q2, test_logic)        
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertItemsEqual(
            idx,
            idx1.difference(idx2).difference(idx3)
        )
        self.assertEqual(
            vkey,
            'x[((1&2)~(3,4)~{3})]:y'
        )
        
        q2 = self.example_data_A_data['q2']       
        test_logic = sym_diff([
            has_all([1, 2]),
            has_any([3, 4]),
            has_count([3])
        ])
        idx, vkey = get_logic_index(q2, test_logic)        
        idx1, vkey1 = get_logic_index(q2, test_logic[1][0])
        idx2, vkey2 = get_logic_index(q2, test_logic[1][1])
        idx3, vkey3 = get_logic_index(q2, test_logic[1][2])
        self.assertItemsEqual(
            idx,
            idx1.sym_diff(idx2).sym_diff(idx3)
        )
        self.assertEqual(
            vkey,
            'x[((1&2)^(3,4)^{3})]:y'
        )