(require 'ecl-quicklisp) (ql:quickload :fiveam) (use-package :fiveam) (use-package :editor) (def-suite all-tests) (def-suite gap-buffer :in all-tests) (in-suite gap-buffer) (defparameter gb (make-gap-buffer "abcdefghijklmnopqrstuvwxyz")) (test make-gap-buffer (is (equal "#S(GAP-BUFFER \"abcdefghijklmnopqrstuvwxyz[26-90(64)]\")" (gap-buffer-print gb)))) (test move-gap (is (equal "#S(GAP-BUFFER \"abcdefghijklmno[15-79(64)]pqrstuvwxyz\")" (gap-buffer-print (gap-buffer-move-gap gb 15)))) (is (equal "#S(GAP-BUFFER \"ab[2-66(64)]cdefghijklmnopqrstuvwxyz\")" (gap-buffer-print (gap-buffer-move-gap gb 2))))) (test insert-string (is (equal "#S(GAP-BUFFER \"ab123456789[11-66(55)]cdefghijklmnopqrstuvwxyz\")" (gap-buffer-print (gap-buffer-insert-string gb "123456789")))) (is (equal "#S(GAP-BUFFER \"ab123456789pyfgcrlaoeuidhtns[28-66(38)]cdefghijklmnopqrstuvwxyz\")" (gap-buffer-print (gap-buffer-insert-string gb "pyfgcrlaoeuidhtns")))) (is (equal "#S(GAP-BUFFER \"ab123456789pyfgcrlaoeuidhtns;qjkxbmwvzlrcgpoaeusnth[51-66(15)]cdefghijklmnopqrstuvwxyz\")" (gap-buffer-print (gap-buffer-insert-string gb ";qjkxbmwvzlrcgpoaeusnth")))) (is (equal "#S(GAP-BUFFER \"ab123456789pyfgcrlaoeuidhtns;qjkxbmwvzlrcgpoaeusnth0123456789[61-66(5)]cdefghijklmnopqrstuvwxyz\")" (gap-buffer-print (gap-buffer-insert-string gb "0123456789"))))) (test grow-gap (is (equal "#S(GAP-BUFFER \"ab123456789pyfgcrlaoeuidhtns;qjkxbmwvzlrcgpoaeusnth01234567899876543210abcdefghij[81-145(64)]cdefghijklmnopqrstuvwxyz\")" (gap-buffer-print (gap-buffer-insert-string gb "9876543210abcdefghij"))))) (test delete (is (equal "#S(GAP-BUFFER \"ab123456789pyfgcrlaoeuidhtns;qjkxbmwvzlrcgpoaeusnth01234567899876543210abcdefghij[81-148(67)]fghijklmnopqrstuvwxyz\")" (gap-buffer-print (gap-buffer-delete gb 3 :after)))) (is (equal "#S(GAP-BUFFER \"ab123456789pyfgcrlaoeuidhtns;qjkxbmwvzlrcgpoaeusnth01234567899876543210abcdefghij[81-169(88)]\")" (gap-buffer-print (gap-buffer-delete gb 23 :after)))) (is (equal "#S(GAP-BUFFER \"ab123456789pyfgcrlaoeuidhtns;qjkxbmwvzlrcgpoaeusnth01234567899876543210abcdefghij[81-169(88)]\")" (gap-buffer-print (gap-buffer-delete gb 23 :after)))) (is (equal "#S(GAP-BUFFER \"ab123456789pyfgcrlaoeuidhtns;qjkxbmwvzlrcgpoaeusnth0123456[58-169(111)]\")" (gap-buffer-print (gap-buffer-delete gb 23)))) (is (equal "#S(GAP-BUFFER \"ab123456789pyfgcrlaoeuidhtns;qjkxbm[35-169(134)]\")" (gap-buffer-print (gap-buffer-delete gb 23)))) (is (equal "#S(GAP-BUFFER \"ab123456789p[12-169(157)]\")" (gap-buffer-print (gap-buffer-delete gb 23)))) (is (equal "#S(GAP-BUFFER \"[0-169(169)]\")" (gap-buffer-print (gap-buffer-delete gb 23))))) (test insert-string-move-gap (is (equal "#S(GAP-BUFFER \"abcdefghijklmnopqrstuvwxyz[26-169(143)]\")" (gap-buffer-print (gap-buffer-insert-string gb "abcdefghijklmnopqrstuvwxyz")))) (is (equal "#S(GAP-BUFFER \"[0-143(143)]abcdefghijklmnopqrstuvwxyz\")" (gap-buffer-print (gap-buffer-move-gap gb 0)))) (is (equal "#S(GAP-BUFFER \"0123456789[10-143(133)]abcdefghijklmnopqrstuvwxyz\")" (gap-buffer-print (gap-buffer-insert-string gb "0123456789")))) (is (equal "#S(GAP-BUFFER \"0123456789abcdefghijklmnopqrstuvwxyz[36-169(133)]\")" (gap-buffer-print (gap-buffer-move-gap gb 200))))) (run! 'all-tests)