forked from Sinaptik-AI/pandas-ai
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test_anonymizer.py
56 lines (45 loc) · 1.93 KB
/
test_anonymizer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import pandas as pd
import pytest
from pandasai.helpers.anonymizer import *
class TestAnonymizeDataFrameHead:
def test_is_valid_email(self):
assert is_valid_email("john.doe@gmail.com") is True
assert is_valid_email("john.doe@gmail") is False
def test_is_valid_phone_number(self):
assert is_valid_phone_number("+1 (123) 456-7890") is True
assert is_valid_phone_number("123-456-789") is False
def test_is_valid_credit_card(self):
assert is_valid_credit_card("1234-5678-9012-3456") is True
assert is_valid_credit_card("1234-5678-9012") is False
def test_generate_random_email(self):
email = generate_random_email()
assert is_valid_email(email) is True
def test_generate_random_phone_number(self):
original_phone_number = "+1 (123) 456-7890"
new_phone_number = generate_random_phone_number(original_phone_number)
assert is_valid_phone_number(new_phone_number) is True
def test_generate_random_credit_card(self):
credit_card = generate_random_credit_card()
assert is_valid_credit_card(credit_card) is True
def test_copy_head(self):
data = {"A": [1, 2, 3], "B": [4, 5, 6]}
df = pd.DataFrame(data)
df_head = copy_head(df)
assert df.head().equals(df_head) is True
def test_anonymize_dataframe_head(self):
data = {
"Email": [
"john.doe@gmail.com",
"jane.doe@yahoo.com",
"jake.doe@hotmail.com",
],
"Phone": ["+1 (123) 456-7890", "+1 (234) 567-8901", "+1 (345) 678-9012"],
"Credit Card": [
"1234-5678-9012-3456",
"2345-6789-0123-4567",
"3456-7890-1234-5678",
],
}
df = pd.DataFrame(data)
anonymized_df_head = anonymize_dataframe_head(df)
assert df.head().values.tolist() != anonymized_df_head.values.tolist()