29 lines
1.2 KiB
Common 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))))))
|