Files
passepartout/tests/lisp-repair-tests.lisp

29 lines
1.2 KiB
Common Lisp

(defpackage :org-agent-lisp-repair-tests
(:use :cl :fiveam :org-agent)
(:export #:lisp-repair-suite))
(in-package :org-agent-lisp-repair-tests)
(def-suite lisp-repair-suite :description "Tests for Lisp Repair Syntax Gate.")
(in-suite lisp-repair-suite)
(test test-deterministic-repair-balance
"Verify that deterministic-repair balances parentheses."
(let ((broken "(:type :REQUEST :target :emacs"))
(is (equal "(:type :REQUEST :target :emacs)"
(org-agent:deterministic-repair broken)))))
(test test-deterministic-repair-deep-balance
"Verify that deterministic-repair balances multiple nested parentheses."
(let ((broken "(list :a (list :b 1"))
(is (equal "(list :a (list :b 1))"
(org-agent:deterministic-repair broken)))))
(test test-repair-lisp-syntax-entry
"Verify that repair-lisp-syntax successfully repairs and parses broken Lisp."
(let ((broken "(:type :REQUEST :target :tool")
(error-msg "End of file while reading"))
(let ((result (org-agent:repair-lisp-syntax broken error-msg)))
(is (listp result))
(is (eq :REQUEST (getf result :type)))
(is (eq :tool (getf result :target))))))