import unittest
import sys
import os

sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '../src')))
from src.Count_ED import Counter

class TestCounter(unittest.TestCase):
    def setUp(self):
        self.c = Counter()

    def test_count_ed_regular(self):
        self.assertEqual(self.c.count_ed("Decker"), 3)

    def test_count_ed_empty(self):
        self.assertEqual(self.c.count_ed(""), 0)

    def test_count_ed_wo(self):
        """Testet einen String ohne E und D"""
        self.assertEqual(self.c.count_ed("Hallo"), 0)

    def test_count_ed_case_insensitive(self):
        """Testet verschiedene Groß- und Kleinschreibungen"""
        self.assertEqual(self.c.count_ed("Der Esel"), 4)

    def test_count_ED_single_letter(self):
        """Testet Eingaben mit nur einem Buchstaben"""
        self.assertEqual(self.c.count_ed('D'), 1)
        self.assertEqual(self.c.count_ed('E'), 1)
        self.assertEqual(self.c.count_ed('d'), 1)
        self.assertEqual(self.c.count_ed('e'), 1)

if __name__ == "__main__":
    unittest.main()