;;; Abbrev library for R7RS Scheme. ;;; SPDX-License-Identifier: LicenseRef-OWL-0.9.4 ;;; SPDX-FileCopyrightText: 2025 afiw (import (abbrev) (test)) (test "original example" '(("lisp" . "lisp") ("lis" . "lisp") ("li" . "lisp") ("l" . "lisp") ("scala" . "scala") ("scal" . "scala") ("sca" . "scala") ("scheme" . "scheme") ("schem" . "scheme") ("sche" . "scheme") ("sch" . "scheme")) (abbrev '("scheme" "scala" "lisp"))) (test "original example with prefix" '(("scala" . "scala") ("scal" . "scala") ("sca" . "scala") ("scheme" . "scheme") ("schem" . "scheme") ("sche" . "scheme") ("sch" . "scheme")) (abbrev '("scheme" "scala" "lisp") "s")) (test-assert "empty list" (null? (abbrev '()))) (test "single-element list" '(("c" . "c")) (abbrev '("c"))) (test-assert "identical elements" (null? (abbrev '("c" "c")))) (test-error "non-list argument" (abbrev "")) (test-error "non-string element" (abbrev '(()))) (test-exit)