def test_missing_in_row_dict_raise_valueerror(self): database = Database("whoah") database.register() dtype = [ (numpy_string('a'), np.uint32), (numpy_string('b'), np.uint32), (numpy_string('row'), np.uint32), (numpy_string('col'), np.uint32), (numpy_string('values'), np.float32), ] array = np.array([ (1, 2, MAX_INT_32, MAX_INT_32, 99), (1, 4, MAX_INT_32, MAX_INT_32, 99), ], dtype=dtype) row_dict = {1: 0} col_dict = {2: 0} np.save(database.filepath_processed(), array, allow_pickle=False) with self.assertRaises(ValueError): MatrixBuilder.build([database.filepath_processed()], "values", "a", "row", "b", "col", row_dict, col_dict, drop_missing=False)
def test_database_process_adds_correct_geo(add_biosphere): database = Database("food") database.write(food) package = load_datapackage(ZipFS(database.filepath_processed())) data = package.get_resource("food_inventory_geomapping_matrix.indices")[0] assert geomapping["CA"] in data["col"].tolist() assert geomapping["CH"] in data["col"].tolist()
def test_database_process_adds_default_geo(add_biosphere): database = Database("food") new_food = copy.deepcopy(food) for v in new_food.values(): del v["location"] database.write(new_food) package = load_datapackage(ZipFS(database.filepath_processed())) data = package.get_resource("food_inventory_geomapping_matrix.indices")[0] assert np.allclose(data["col"], geomapping[config.global_location])
def test_build_one_d_drop_missing(self): database = Database("ghost") database.register() dtype = [ (numpy_string('a'), np.uint32), (numpy_string('row'), np.uint32), (numpy_string('values'), np.float32), ] array = np.array([ (1, MAX_INT_32, 99), (2, MAX_INT_32, 99), (3, MAX_INT_32, 99), ], dtype=dtype) row_dict = {1: 0, 2: 1} np.save(database.filepath_processed(), array, allow_pickle=False) values = MatrixBuilder.build([database.filepath_processed()], "values", "a", "row", row_dict=row_dict, one_d=True)[0] self.assertEqual(values.shape, (2, ))
def test_build_one_d(self): database = Database("sour") database.register() dtype = [ (numpy_string('a'), np.uint32), (numpy_string('row'), np.uint32), (numpy_string('values'), np.float32), ] array = np.array([ (1, MAX_INT_32, 99), (2, MAX_INT_32, 100), ], dtype=dtype) row_dict = {1: 0, 2: 1} np.save(database.filepath_processed(), array, allow_pickle=False) matrix = MatrixBuilder.build([database.filepath_processed()], "values", "a", "row", row_dict=row_dict, one_d=True)[3] self.assertTrue( np.allclose(matrix.toarray(), np.array(((99, 0), (0, 100)))))
def test_build_drop_missing(self): database = Database("boo") database.register() dtype = [ (numpy_string('a'), np.uint32), (numpy_string('b'), np.uint32), (numpy_string('row'), np.uint32), (numpy_string('col'), np.uint32), (numpy_string('values'), np.float32), ] array = np.array([ (1, 2, MAX_INT_32, MAX_INT_32, 99), (3, 4, MAX_INT_32, MAX_INT_32, 99), (3, 2, MAX_INT_32, MAX_INT_32, 99), (5, 6, MAX_INT_32, MAX_INT_32, 99), ], dtype=dtype) row_dict = {1: 0, 3: 1} col_dict = {2: 0, 6: 1} np.save(database.filepath_processed(), array, allow_pickle=False) values = MatrixBuilder.build([database.filepath_processed()], "values", "a", "row", "b", "col", row_dict, col_dict)[0] self.assertEqual(values.shape, (2, ))