Files
rose-ash/lib/haskell/tests/show.sx
giles d8dec07df3
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 53s
haskell: Phase 8 — Read class stub (reads/readsPrec/read) (+3 tests, 10/10)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-07 00:32:38 +00:00

60 lines
1.6 KiB
Plaintext

;; show.sx — tests for the Show class plumbing.
;;
;; Covers:
;; - showsPrec / showParen / shows / showString stubs (Phase 8)
;; - Eventually expanded to ≥12 tests covering the full audit (Phase 8 ☐).
(hk-test
"shows: prepends show output"
(hk-deep-force (hk-run "main = shows 5 \"abc\""))
"5abc")
(hk-test
"shows: works on True"
(hk-deep-force (hk-run "main = shows True \"x\""))
"Truex")
(hk-test
"showString: prepends literal"
(hk-deep-force (hk-run "main = showString \"hello\" \" world\""))
"hello world")
(hk-test
"showParen True: wraps inner output in parens"
(hk-deep-force (hk-run "main = showParen True (showString \"inside\") \"\""))
"(inside)")
(hk-test
"showParen False: passes through unchanged"
(hk-deep-force (hk-run "main = showParen False (showString \"inside\") \"\""))
"inside")
(hk-test
"showsPrec: prepends show output regardless of prec"
(hk-deep-force (hk-run "main = showsPrec 11 42 \"end\""))
"42end")
(hk-test
"showParen + manual composition: build (Just 3)"
(hk-deep-force
(hk-run
"buildJust3 s = showString \"Just \" (shows 3 s)\nmain = showParen True buildJust3 \"\""))
"(Just 3)")
(hk-test
"reads: stub returns empty list (null-check)"
(hk-deep-force (hk-run "main = show (null (reads \"42\"))"))
"True")
(hk-test
"readsPrec: stub returns empty list"
(hk-deep-force (hk-run "main = show (null (readsPrec 0 \"True\"))"))
"True")
(hk-test
"reads: type-checks in expression context (length)"
(hk-deep-force (hk-run "main = show (length (reads \"abc\"))"))
"0")
{:fails hk-test-fails :pass hk-test-pass :fail hk-test-fail}