Switch to unified view

a b/tests/unit/str/test_str.py
1
import docdeid as dd
2
3
from deduce.str import (
4
    Acronimify,
5
    FilterBasedOnLookupSet,
6
    RemoveValues,
7
    TakeLastToken,
8
    TitleCase,
9
    UpperCase,
10
    UpperCaseFirstChar,
11
)
12
13
14
class TestStr:
15
    def test_uppercase(self):
16
        processor = UpperCase()
17
18
        assert processor.process("test") == "TEST"
19
        assert processor.process("Test") == "TEST"
20
        assert processor.process("TEST") == "TEST"
21
        assert processor.process("123") == "123"
22
        assert processor.process("test_123") == "TEST_123"
23
24
    def test_uppercase_first_char(self):
25
        processor = UpperCaseFirstChar()
26
27
        assert processor.process("test") == "Test"
28
        assert processor.process("Test") == "Test"
29
        assert processor.process("t") == "T"
30
        assert processor.process("T") == "T"
31
        assert processor.process("A3") == "A3"
32
        assert processor.process("a3") == "A3"
33
34
    def test_titlecase(self):
35
        processor = TitleCase()
36
37
        assert processor.process("test") == "Test"
38
        assert processor.process("Test") == "Test"
39
        assert processor.process("Test test") == "Test Test"
40
        assert processor.process("t") == "T"
41
        assert processor.process("T") == "T"
42
        assert processor.process("T t") == "T T"
43
        assert processor.process("A3") == "A3"
44
        assert processor.process("a3") == "A3"
45
        assert processor.process("a3 a4") == "A3 A4"
46
47
    def test_take_last_token(self):
48
        processor = TakeLastToken()
49
50
        assert processor.process("test") == "test"
51
        assert processor.process("dit is een test") == "test"
52
        assert processor.process("") == ""
53
54
    def test_remove_values(self):
55
        processor = RemoveValues(filter_values=["de", "het", "een"])
56
57
        assert processor.process("de boot") == "boot"
58
        assert processor.process("debiet") == "debiet"
59
        assert (
60
            processor.process("van het Schip") == "vanSchip"
61
        )  # TODO Is this intended?
62
        assert processor.process("nummer een") == "nummer"
63
64
    def test_acronimify(self):
65
        processor = Acronimify()
66
67
        assert processor.process("Elizabeth Tweesteden Ziekenhuis") == "ETZ"
68
        assert processor.process("Umcu") == "U"
69
        assert processor.process("Universitair Medisch Centrum Utrecht") == "UMCU"
70
        assert processor.process("universitair medisch centrum utrecht") == "umcu"
71
72
    def test_filter_based_on_lookupset(self):
73
        lookup_set = dd.ds.LookupSet()
74
        lookup_set.add_items_from_iterable(["arts", "bakker", "slager"])
75
76
        processor = FilterBasedOnLookupSet(filter_set=lookup_set)
77
78
        assert processor.filter("")
79
        assert processor.filter("visser")
80
        assert not processor.filter("arts")
81
        assert not processor.filter("bakker")
82
        assert not processor.filter("slager")