--- a
+++ b/tests/unit/str/test_str.py
@@ -0,0 +1,82 @@
+import docdeid as dd
+
+from deduce.str import (
+    Acronimify,
+    FilterBasedOnLookupSet,
+    RemoveValues,
+    TakeLastToken,
+    TitleCase,
+    UpperCase,
+    UpperCaseFirstChar,
+)
+
+
+class TestStr:
+    def test_uppercase(self):
+        processor = UpperCase()
+
+        assert processor.process("test") == "TEST"
+        assert processor.process("Test") == "TEST"
+        assert processor.process("TEST") == "TEST"
+        assert processor.process("123") == "123"
+        assert processor.process("test_123") == "TEST_123"
+
+    def test_uppercase_first_char(self):
+        processor = UpperCaseFirstChar()
+
+        assert processor.process("test") == "Test"
+        assert processor.process("Test") == "Test"
+        assert processor.process("t") == "T"
+        assert processor.process("T") == "T"
+        assert processor.process("A3") == "A3"
+        assert processor.process("a3") == "A3"
+
+    def test_titlecase(self):
+        processor = TitleCase()
+
+        assert processor.process("test") == "Test"
+        assert processor.process("Test") == "Test"
+        assert processor.process("Test test") == "Test Test"
+        assert processor.process("t") == "T"
+        assert processor.process("T") == "T"
+        assert processor.process("T t") == "T T"
+        assert processor.process("A3") == "A3"
+        assert processor.process("a3") == "A3"
+        assert processor.process("a3 a4") == "A3 A4"
+
+    def test_take_last_token(self):
+        processor = TakeLastToken()
+
+        assert processor.process("test") == "test"
+        assert processor.process("dit is een test") == "test"
+        assert processor.process("") == ""
+
+    def test_remove_values(self):
+        processor = RemoveValues(filter_values=["de", "het", "een"])
+
+        assert processor.process("de boot") == "boot"
+        assert processor.process("debiet") == "debiet"
+        assert (
+            processor.process("van het Schip") == "vanSchip"
+        )  # TODO Is this intended?
+        assert processor.process("nummer een") == "nummer"
+
+    def test_acronimify(self):
+        processor = Acronimify()
+
+        assert processor.process("Elizabeth Tweesteden Ziekenhuis") == "ETZ"
+        assert processor.process("Umcu") == "U"
+        assert processor.process("Universitair Medisch Centrum Utrecht") == "UMCU"
+        assert processor.process("universitair medisch centrum utrecht") == "umcu"
+
+    def test_filter_based_on_lookupset(self):
+        lookup_set = dd.ds.LookupSet()
+        lookup_set.add_items_from_iterable(["arts", "bakker", "slager"])
+
+        processor = FilterBasedOnLookupSet(filter_set=lookup_set)
+
+        assert processor.filter("")
+        assert processor.filter("visser")
+        assert not processor.filter("arts")
+        assert not processor.filter("bakker")
+        assert not processor.filter("slager")