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)
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)
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)
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)
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)
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)
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)