Пример #1
0
 def test_formjson_with_metric_override(self):
     expected_json = tuple(([{'dataType': 'INTEGER', 'name': 'id_int'},
                             {'dataType': 'STRING', 'name': 'id_str'},
                             {'dataType': 'STRING', 'name': 'first_name '},
                             {'dataType': 'STRING', 'name': 'last_name'},
                             {'dataType': 'INTEGER', 'name': 'age'},
                             {'dataType': 'DOUBLE', 'name': 'weight'},
                             {'dataType': 'STRING', 'name': 'state'},
                             {'dataType': 'INTEGER', 'name': 'salary'}],
                            [{'attributeForms': [{'category': 'ID',
                                                  'expressions': [{'formula': 'TEST.first_name '}]}],
                              'name': 'first_name '},
                             {'attributeForms': [{'category': 'ID',
                                                  'expressions': [{'formula': 'TEST.last_name'}]}],
                              'name': 'last_name'},
                             {'attributeForms': [{'category': 'ID',
                                                  'expressions': [{'formula': 'TEST.state'}]}],
                              'name': 'state'}],
                            [{'dataType': 'number',
                              'expressions': [{'formula': 'TEST.id_int'}],
                              'name': 'id_int'},
                             {'dataType': 'number',
                              'expressions': [{'formula': 'TEST.id_str'}],
                              'name': 'id_str'},
                             {'dataType': 'number',
                              'expressions': [{'formula': 'TEST.age'}],
                              'name': 'age'},
                             {'dataType': 'number',
                              'expressions': [{'formula': 'TEST.weight'}],
                              'name': 'weight'},
                             {'dataType': 'number',
                              'expressions': [{'formula': 'TEST.salary'}],
                              'name': 'salary'}]))
     created_json = formjson(df=make_df(), table_name='TEST', as_metrics=['id_str'])
     self.assertEquals(created_json, expected_json)
Пример #2
0
    def test_metric_list(self):
        column_headers, attribute_list, metric_list = formjson(
            df=make_df(), table_name='TEST')
        testcase = [{
            'name': 'id_int',
            'dataType': 'number',
            'expressions': [{
                'formula': 'TEST.id_int'
            }]
        }, {
            'name': 'age',
            'dataType': 'number',
            'expressions': [{
                'formula': 'TEST.age'
            }]
        }, {
            'name': 'weight',
            'dataType': 'number',
            'expressions': [{
                'formula': 'TEST.weight'
            }]
        }, {
            'name': 'salary',
            'dataType': 'number',
            'expressions': [{
                'formula': 'TEST.salary'
            }]
        }]

        self.assertListEqual(metric_list, testcase)
Пример #3
0
 def test_column_headers(self):
     column_headers, attribute_list, metric_list = formjson(
         df=make_df(), table_name='TEST')
     testcase = [{
         'name': 'id_int',
         'dataType': 'INTEGER'
     }, {
         'name': 'id_str',
         'dataType': 'STRING'
     }, {
         'name': 'first_name',
         'dataType': 'STRING'
     }, {
         'name': 'last_name',
         'dataType': 'STRING'
     }, {
         'name': 'age',
         'dataType': 'INTEGER'
     }, {
         'name': 'weight',
         'dataType': 'DOUBLE'
     }, {
         'name': 'state',
         'dataType': 'STRING'
     }, {
         'name': 'salary',
         'dataType': 'INTEGER'
     }]
     self.assertListEqual(column_headers, testcase)
Пример #4
0
    def test_formjson_with_metric_override(self):

        # in this test, the element 'id_str' from the data frame needs to be converted to a metric in the data model.
        # to accomplish this, simply check that id_str is present in the model json when it is specified as the override

        column_headers, attribute_list, metric_list = formjson(
            df=make_df(), table_name='TEST', as_metrics=['id_str'])

        # check that id_str is in metric list
        metrics = [i['name'] for i in metric_list]
        self.assertIn('id_str', metrics)
Пример #5
0
    def test_formjson_with_64_bit_metrics(self):

        # create df and change types as needed
        df = make_df()
        df.weight = df.weight.astype('float64')
        df.id_int = df.id_int.astype('int64')
        df.age = df.age.astype('int64')
        df.salary = df.salary.astype('int64')

        # generate json string model from the test dataframe
        column_headers, attribute_list, metric_list = formjson(
            df=df, table_name='TEST')
        for col in column_headers:
            if col['name'] == 'weight':
                self.assertEqual(col['dataType'], 'DOUBLE')
            if col['name'] in ['id_int', 'age', 'salary']:
                self.assertEqual(col['dataType'], 'INTEGER')
Пример #6
0
    def test_attribute_list(self):
        column_headers, attribute_list, metric_list = formjson(
            df=make_df(), table_name='TEST')
        testcase = [{
            'name':
            'id_str',
            'attributeForms': [{
                'category': 'ID',
                'expressions': [{
                    'formula': 'TEST.id_str'
                }]
            }]
        }, {
            'name':
            'first_name',
            'attributeForms': [{
                'category': 'ID',
                'expressions': [{
                    'formula': 'TEST.first_name'
                }]
            }]
        }, {
            'name':
            'last_name',
            'attributeForms': [{
                'category': 'ID',
                'expressions': [{
                    'formula': 'TEST.last_name'
                }]
            }]
        }, {
            'name':
            'state',
            'attributeForms': [{
                'category': 'ID',
                'expressions': [{
                    'formula': 'TEST.state'
                }]
            }]
        }]

        self.assertListEqual(attribute_list, testcase)