예제 #1
0
    def test_place_each_data_point_multi_value(self):
        multi_data_points = [{
            **dp, "total_population": 100
        } for dp in _DATA_POINTS]
        multi_value_keys = ["total_population", "total_revocations"]

        expected = [
            [0, 0, 1, 1, 2, 0, 0, 1, 1, 2, 2],
            [0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1],
            [0, 1, 0, 1, 0, 0, 1, 0, 1, 0, 1],
            [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
            [100, 100, 100, 100, 100, 100, 100, 100, 100, 100, 100],
            [100, 68, 73, 41, 10, 30, 36, 51, 38, 15, 4],
        ]

        fresh_data_values = self._create_new_data_values()
        fresh_data_values.append([])  # Add one more for this test case
        for data_point in multi_data_points:
            optimized_metric_big_query_view_exporter.place_in_compact_matrix(
                data_point,
                fresh_data_values,
                multi_value_keys,
                _DIMENSION_MANIFEST,
            )

        self.assertEqual(expected, fresh_data_values)
예제 #2
0
    def test_place_each_data_point_single_value(self):
        fresh_data_values = self._create_new_data_values()
        for data_point in _DATA_POINTS:
            optimized_metric_big_query_view_exporter.place_in_compact_matrix(
                data_point,
                fresh_data_values,
                _VALUE_KEYS,
                _DIMENSION_MANIFEST,
            )

        self.assertEqual(_DATA_VALUES, fresh_data_values)
예제 #3
0
 def test_place_value_not_in_dataset(self):
     fresh_data_values = self._create_new_data_values()
     new_data_point = {
         "district": "6",
         "year": 2020,
         "month": 11,
         "supervision_type": "PROBATION",
         "other_value": 5,
     }
     optimized_metric_big_query_view_exporter.place_in_compact_matrix(
         new_data_point,
         fresh_data_values,
         _VALUE_KEYS,
         _DIMENSION_MANIFEST,
     )
     self.assertEqual([[2], [0], [1], [0], [0]], fresh_data_values)
예제 #4
0
 def test_place_value_not_in_dataset(self):
     fresh_data_values = self._create_new_data_values()
     new_data_point = {
         'district': '6',
         'year': 2020,
         'month': 11,
         'supervision_type': 'PROBATION',
         'other_value': 5
     }
     optimized_metric_big_query_view_exporter.place_in_compact_matrix(
         new_data_point,
         fresh_data_values,
         _VALUE_KEYS,
         _DIMENSION_MANIFEST,
     )
     self.assertEqual([[2], [0], [1], [0], [0]], fresh_data_values)
예제 #5
0
    def test_place_dimensions_not_in_dataset(self):
        fresh_data_values = self._create_new_data_values()
        with pytest.raises(KeyError) as e:
            new_data_point = {
                "district": "4",
                "year": 2020,
                "month": 5,
                "supervision_type": "PAROLE",
                "total_revocations": 10,
            }
            optimized_metric_big_query_view_exporter.place_in_compact_matrix(
                new_data_point,
                fresh_data_values,
                _VALUE_KEYS,
                _DIMENSION_MANIFEST,
            )

            self.assertIn("month: 5", e.message)
예제 #6
0
    def test_place_happy_path_single_value(self):
        fresh_data_values = self._create_new_data_values()
        optimized_metric_big_query_view_exporter.place_in_compact_matrix(
            _DATA_POINTS[3],
            fresh_data_values,
            _VALUE_KEYS,
            _DIMENSION_MANIFEST,
        )
        self.assertEqual([[1], [0], [1], [0], [41]], fresh_data_values)

        optimized_metric_big_query_view_exporter.place_in_compact_matrix(
            _DATA_POINTS[8],
            fresh_data_values,
            _VALUE_KEYS,
            _DIMENSION_MANIFEST,
        )
        self.assertEqual([[1, 1], [0, 1], [1, 1], [0, 0], [41, 38]],
                         fresh_data_values)
예제 #7
0
    def test_place_dimensions_not_in_dataset(self):
        fresh_data_values = self._create_new_data_values()
        with pytest.raises(KeyError) as e:
            new_data_point = {
                'district': '4',
                'year': 2020,
                'month': 5,
                'supervision_type': 'PAROLE',
                'total_revocations': 10,
            }
            optimized_metric_big_query_view_exporter.place_in_compact_matrix(
                new_data_point,
                fresh_data_values,
                _VALUE_KEYS,
                _DIMENSION_MANIFEST,
            )

            self.assertIn('month: 5', e.message)