proof-of-false

2025 April Fools' Day joke

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
import unittest
from pingshui_rhyme import PoemStructureChecker

class TestPoemStructure(unittest.TestCase):
    def setUp(self):
        self.checker = PoemStructureChecker()

    def test_jueju_rhyming(self):
        poem = '''
        床前明月光,
        疑是地上霜。
        舉頭望明月,
        低頭思故鄉。
        '''
        result, message = self.checker.check_poem_rhyming(poem)
        self.assertTrue(result)
        self.assertEqual(message, "Poem follows jueju rhyming rules.")

    def test_lushi_rhyming(self):
        poem = '''
        昔人已乘黃鶴去,
        此地空餘黃鶴樓。
        黃鶴一去不復返,
        白雲千載空悠悠。
        晴川歷歷漢陽樹,
        芳草萋萋鸚鵡洲。
        日暮鄉關何處是,
        煙波江上使人愁。
        '''
        result, message = self.checker.check_poem_rhyming(poem)
        self.assertTrue(result)
        self.assertEqual(message, "Poem follows lushi rhyming rules.")

    def test_pingze_meter(self):
        poem = '''
        歲莫陰陽催短景,天涯霜雪霽寒霄。
        五更鼓角聲悲壯,三峽星河影動搖。
        野哭千家聞戰伐,夷歌幾處起漁樵。
        臥龍躍馬終黃土,人事音書漫寂寥。 
        '''
        result, message = self.checker.check_poem_pingze_meter(poem)
        self.assertTrue(result)
        self.assertEqual(message, "Poem follows the less restrictive ping-ze alternation pattern in 2nd, 4th, and 6th characters.")

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