feat(SIMPL-24642): migrate tests from 3 source repos with updated imports
This commit is contained in:
70
tests/dataframe_level_anonymisation/test_utils.py
Normal file
70
tests/dataframe_level_anonymisation/test_utils.py
Normal file
@@ -0,0 +1,70 @@
|
||||
import numpy as np
|
||||
|
||||
from template_code_location.dataframe_level_anonymisation.utils import (
|
||||
parse_value_list,
|
||||
normalize_hierarchy_levels,
|
||||
)
|
||||
|
||||
|
||||
# ------------------------------------
|
||||
# Tests for parse_value_list
|
||||
# ------------------------------------
|
||||
def test_parse_value_list_all_strings_digits():
|
||||
values = ["1", "2", "3"]
|
||||
assert parse_value_list(values) == [1, 2, 3]
|
||||
|
||||
|
||||
def test_parse_value_list_mixed_values():
|
||||
values = ["1", 2, "abc", "5"]
|
||||
assert parse_value_list(values) == [1, 2, "abc", 5]
|
||||
|
||||
|
||||
def test_parse_value_list_no_digits():
|
||||
values = ["a", "b", "c"]
|
||||
assert parse_value_list(values) == ["a", "b", "c"]
|
||||
|
||||
|
||||
# ------------------------------------
|
||||
# Tests for normalize_hierarchy_levels
|
||||
# ------------------------------------
|
||||
def test_normalize_hierarchy_levels_level_0_converted_to_numpy_array():
|
||||
hierarchy = {"age": {"0": ["1", "2", "3"], "1": ["0-10", "11-20"]}}
|
||||
|
||||
normalized = normalize_hierarchy_levels(hierarchy)
|
||||
|
||||
assert "age" in normalized
|
||||
assert 0 in normalized["age"]
|
||||
assert isinstance(normalized["age"][0], np.ndarray)
|
||||
assert normalized["age"][0].tolist() == [1, 2, 3] # converted via parse_value_list
|
||||
assert normalized["age"][1] == ["0-10", "11-20"] # untouched
|
||||
|
||||
|
||||
def test_normalize_hierarchy_levels_multiple_columns():
|
||||
hierarchy = {"age": {"0": ["10", "20"]}, "gender": {"0": ["M", "F"], "1": ["*"]}}
|
||||
|
||||
normalized = normalize_hierarchy_levels(hierarchy)
|
||||
|
||||
# First column
|
||||
assert isinstance(normalized["age"][0], np.ndarray)
|
||||
assert normalized["age"][0].tolist() == [10, 20]
|
||||
|
||||
# Second column
|
||||
assert isinstance(normalized["gender"][0], np.ndarray)
|
||||
assert normalized["gender"][0].tolist() == ["M", "F"]
|
||||
assert normalized["gender"][1] == ["*"]
|
||||
|
||||
|
||||
def test_normalize_hierarchy_levels_mixed_digit_non_digit_at_level_0():
|
||||
hierarchy = {"test": {"0": ["1", "x", "3"]}}
|
||||
|
||||
normalized = normalize_hierarchy_levels(hierarchy)
|
||||
|
||||
assert isinstance(normalized["test"][0], np.ndarray)
|
||||
assert normalized["test"][0].tolist() == ["1", "x", "3"]
|
||||
|
||||
|
||||
def test_normalize_hierarchy_levels_empty_mapping():
|
||||
hierarchy = {"col": {}}
|
||||
normalized = normalize_hierarchy_levels(hierarchy)
|
||||
|
||||
assert normalized == {"col": {}}
|
||||
Reference in New Issue
Block a user