-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_team_tech_baddies.py
More file actions
136 lines (112 loc) · 5.38 KB
/
test_team_tech_baddies.py
File metadata and controls
136 lines (112 loc) · 5.38 KB
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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
"""Unit test file for team tech_baddies"""
import unittest
from pii_scan import analyze_text, show_aggie_pride # noqa
class TestTeam_tech_baddies(unittest.TestCase):
"""Test team tech_baddies PII functions"""
def test_show_aggie_pride(self):
"""Test to make sure Aggie Pride is shown correctly"""
self.assertEqual(show_aggie_pride(), "Aggie Pride - Worldwide")
def test_in_aadhaar(self):
"""Test IN_AADHAAR functionality"""
prefix = ['3123']
mid = ['4567']
suffix = ['8909']
# Positive test cases
for p in prefix:
for m in mid:
for s in suffix:
aadhaar = ''.join([p, m, s])
# Check with context score
result = analyze_text('My Aadhaar is ' + aadhaar, ['IN_AADHAAR'])
print("Result with context:", result)
if result:
self.assertEqual('IN_AADHAAR', result[0].entity_type)
self.assertEqual(1.0, result[0].score)
else:
print("No Aadhaar detected with context for:", aadhaar)
# Check without context
result = analyze_text('My abc is ' + aadhaar, ['IN_AADHAAR'])
print("Result without context:", result)
if result:
self.assertEqual('IN_AADHAAR', result[0].entity_type)
self.assertEqual(1.0, result[0].score)
else:
print("No Aadhaar detected without context for:", aadhaar)
# Negative test case (invalid Aadhaar number)
result = analyze_text('My Aadhaar is 000000000000', ['IN_AADHAAR'])
print("Negative test result:", result)
self.assertListEqual([], result)
def test_in_pan(self):
"""Test IN_PAN functionality"""
# Positive test cases
# check context
result = analyze_text('My IN_PAN is AAAPZ1234C', ['IN_PAN'])
print(result)
self.assertEqual('IN_PAN', result[0].entity_type)
self.assertEqual(1.0, result[0].score)
# check no context
result = analyze_text('My IN_PAN is 12APZ1234C', ['IN_PAN'])
print(result)
self.assertEqual('IN_PAN', result[0].entity_type)
self.assertEqual(0.4, result[0].score)
# Negative test cases
result = analyze_text('My IN_PAN is 0000000000', ['IN_PAN'])
self.assertListEqual([], result)
def test_in_passport(self):
"""Test IN_PASSPORT functionality"""
# postive test cases
alpha, numeric = ['A','Z'], ['12345678','87654321']
for letter in alpha:
for num in numeric:
passport = ''.join([letter,num])
# check with context
result = analyze_text('My passport number is ' + passport,['IN_PASSPORT'])
print(result)
self.assertEqual('IN_PASSPORT', result[0].entity_type)
self.assertAlmostEqual(0.45, result[0].score, places=2)
# check with no context
result = analyze_text('My info is ' + passport,['IN_PASSPORT'])
self.assertEqual('IN_PASSPORT', result[0].entity_type)
self.assertEqual(0.1, result[0].score)
# negative test case - no result found
result = analyze_text('My passport number is A00000000',['IN_PASSPORT'])
self.assertListEqual([], result)
def test_in_vehicle_registration(self):
"""Test IN_VEHICLE_REGISTRATION functionality"""
# Positive test case with context
registration = "KA01AB1234"
result = analyze_text('My registration number is ' + registration, ['IN_VEHICLE_REGISTRATION'])
print(result)
self.assertEqual('IN_VEHICLE_REGISTRATION', result[0].entity_type)
self.assertAlmostEqual(1.0, result[0].score, places=2)
# Positive test case without context
result = analyze_text('My info is ' + registration, ['IN_VEHICLE_REGISTRATION'])
print(result)
self.assertEqual('IN_VEHICLE_REGISTRATION', result[0].entity_type)
self.assertAlmostEqual(1.0, result[0].score, places=2)
# Negative test case - invalid registration number
result = analyze_text('My registration number is XX00ZZ0000', ['IN_VEHICLE_REGISTRATION'])
print(result)
self.assertListEqual([], result)
def test_in_voter(self):
"""Test IN_VOTER functionality"""
begin = ['AAA']
ending = ['0000000']
# Positive Test Case
for b in begin:
for e in ending:
number = ''.join([b,e])
# Check context score should be 0.75
result = analyze_text('My Voter ID is ' + number, ['IN_VOTER'])
print(result)
self.assertEqual('IN_VOTER', result[0].entity_type)
self.assertEqual(0.75, result[0].score)
# Check no context
result = analyze_text('My number is ' + number, ['IN_VOTER'])
self.assertEqual('IN_VOTER', result[0].entity_type)
self.assertEqual(0.4, result[0].score)
# Negative Test Case
result = analyze_text('My Voter ID is AAA00000', ['IN_VOTER'])
self.assertListEqual([], result)
if __name__ == '__main__':
unittest.main()