Piyush23890/Sign_Language_Decoder
0
1"""2test_sentence_builder.py3========================4Unit tests for the SentenceBuilder class.5 6Run with:7 python -m pytest test_sentence_builder.py -v8 or:9 python test_sentence_builder.py10"""11 12import sys13import os14sys.path.insert(0, os.path.dirname(__file__))15 16from sentence_builder import SentenceBuilder17 18 19def test_add_letters():20 sb = SentenceBuilder()21 sb.add("H"); sb.add("I")22 assert sb.get() == "HI"23 24 25def test_add_word():26 sb = SentenceBuilder()27 sb.add("HELLO")28 assert sb.get() == "HELLO"29 30 31def test_pause_inserts_space():32 sb = SentenceBuilder()33 sb.add("H"); sb.add("I"); sb.add("PAUSE")34 assert sb.get() == "HI "35 36 37def test_pause_no_double_space():38 sb = SentenceBuilder()39 sb.add("HI"); sb.add("PAUSE"); sb.add("PAUSE")40 assert sb.get() == "HI "41 42 43def test_backspace_letter():44 sb = SentenceBuilder()45 sb.add("A"); sb.add("B"); sb.add("C")46 sb.backspace()47 assert sb.get() == "AB"48 49 50def test_backspace_word():51 sb = SentenceBuilder()52 sb.add("HELLO"); sb.add(" "); sb.add("WORLD")53 sb.backspace()54 # removes "WORLD", leaves "HELLO "55 assert sb.get() == "HELLO "56 57 58def test_backspace_trailing_space():59 sb = SentenceBuilder()60 sb.add("HI"); sb.add_space()61 assert sb.get() == "HI "62 sb.backspace()63 assert sb.get() == "HI"64 65 66def test_clear():67 sb = SentenceBuilder()68 sb.add("HELLO")69 sb.clear()70 assert sb.get() == ""71 72 73def test_refined_capitalise_and_period():74 sb = SentenceBuilder()75 sb.add("hello"); sb.add_space(); sb.add("world")76 assert sb.refined() == "Hello world."77 78 79def test_refined_no_double_period():80 sb = SentenceBuilder()81 sb.add("done.")82 assert sb.refined() == "Done."83 84 85def test_add_space_helper():86 sb = SentenceBuilder()87 sb.add("A")88 sb.add_space()89 assert sb.get() == "A "90 91 92# ── CLI runner ──────────────────────────────────────────────────────────────────93if __name__ == "__main__":94 tests = [95 test_add_letters,96 test_add_word,97 test_pause_inserts_space,98 test_pause_no_double_space,99 test_backspace_letter,100 test_backspace_word,101 test_backspace_trailing_space,102 test_clear,103 test_refined_capitalise_and_period,104 test_refined_no_double_period,105 test_add_space_helper,106 ]107 108 passed = 0109 for t in tests:110 try:111 t()112 print(f" ✅ {t.__name__}")113 passed += 1114 except AssertionError as e:115 print(f" ❌ {t.__name__} — {e}")116 117 print(f"\n{passed}/{len(tests)} tests passed.")118 