407 |
result)) |
result)) |
408 |
#((a 1) (a 10) (a 3) (a 10) (a 10) (a 6) (a 10))) |
#((a 1) (a 10) (a 3) (a 10) (a 10) (a 6) (a 10))) |
409 |
|
|
410 |
|
(deftest substitute-vector.28 |
411 |
|
(let* ((x (make-array '(10) :initial-contents '(a b a c b a d e a f) |
412 |
|
:fill-pointer 5)) |
413 |
|
(result (substitute 'z 'a x))) |
414 |
|
result) |
415 |
|
#(z b z c b)) |
416 |
|
|
417 |
|
(deftest substitute-vector.29 |
418 |
|
(let* ((x (make-array '(10) :initial-contents '(a b a c b a d e a f) |
419 |
|
:fill-pointer 5)) |
420 |
|
(result (substitute 'z 'a x :from-end t))) |
421 |
|
result) |
422 |
|
#(z b z c b)) |
423 |
|
|
424 |
|
(deftest substitute-vector.30 |
425 |
|
(let* ((x (make-array '(10) :initial-contents '(a b a c b a d e a f) |
426 |
|
:fill-pointer 5)) |
427 |
|
(result (substitute 'z 'a x :count 1))) |
428 |
|
result) |
429 |
|
#(z b a c b)) |
430 |
|
|
431 |
|
(deftest substitute-vector.31 |
432 |
|
(let* ((x (make-array '(10) :initial-contents '(a b a c b a d e a f) |
433 |
|
:fill-pointer 5)) |
434 |
|
(result (substitute 'z 'a x :from-end t :count 1))) |
435 |
|
result) |
436 |
|
#(a b z c b)) |
437 |
|
|
438 |
;;; Tests on strings |
;;; Tests on strings |
439 |
|
|
440 |
(deftest substitute-string.1 |
(deftest substitute-string.1 |
654 |
result)) |
result)) |
655 |
"0a0aaaa0aa") |
"0a0aaaa0aa") |
656 |
|
|
657 |
;;; Tests on bitstrings |
(deftest substitute-string.28 |
658 |
|
(let* ((x (make-array '(10) :initial-contents (coerce "abacbadeaf" 'list) |
659 |
|
:fill-pointer 5 :element-type 'character)) |
660 |
|
(result (substitute #\z #\a x))) |
661 |
|
result) |
662 |
|
"zbzcb") |
663 |
|
|
664 |
|
(deftest substitute-string.29 |
665 |
|
(let* ((x (make-array '(10) :initial-contents (coerce "abacbadeaf" 'list) |
666 |
|
:fill-pointer 5 :element-type 'character)) |
667 |
|
(result (substitute #\z #\a x :from-end t))) |
668 |
|
result) |
669 |
|
"zbzcb") |
670 |
|
|
671 |
|
(deftest substitute-string.30 |
672 |
|
(let* ((x (make-array '(10) :initial-contents (coerce "abacbadeaf" 'list) |
673 |
|
:fill-pointer 5 :element-type 'character)) |
674 |
|
(result (substitute #\z #\a x :count 1))) |
675 |
|
result) |
676 |
|
"zbacb") |
677 |
|
|
678 |
|
(deftest substitute-string.31 |
679 |
|
(let* ((x (make-array '(10) :initial-contents (coerce "abacbadeaf" 'list) |
680 |
|
:fill-pointer 5 :element-type 'character)) |
681 |
|
(result (substitute #\z #\a x :from-end t :count 1))) |
682 |
|
result) |
683 |
|
"abzcb") |
684 |
|
|
685 |
|
;;; Tests on bit-vectors |
686 |
|
|
687 |
(deftest substitute-bitstring.1 |
(deftest substitute-bit-vector.1 |
688 |
(let* ((orig #*) |
(let* ((orig #*) |
689 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
690 |
(result (substitute 0 1 x))) |
(result (substitute 0 1 x))) |
692 |
result)) |
result)) |
693 |
#*) |
#*) |
694 |
|
|
695 |
(deftest substitute-bitstring.2 |
(deftest substitute-bit-vector.2 |
696 |
(let* ((orig #*) |
(let* ((orig #*) |
697 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
698 |
(result (substitute 1 0 x))) |
(result (substitute 1 0 x))) |
700 |
result)) |
result)) |
701 |
#*) |
#*) |
702 |
|
|
703 |
(deftest substitute-bitstring.3 |
(deftest substitute-bit-vector.3 |
704 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
705 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
706 |
(result (substitute 0 1 x))) |
(result (substitute 0 1 x))) |
708 |
result)) |
result)) |
709 |
#*000000) |
#*000000) |
710 |
|
|
711 |
(deftest substitute-bitstring.4 |
(deftest substitute-bit-vector.4 |
712 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
713 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
714 |
(result (substitute 1 0 x))) |
(result (substitute 1 0 x))) |
716 |
result)) |
result)) |
717 |
#*111111) |
#*111111) |
718 |
|
|
719 |
(deftest substitute-bitstring.5 |
(deftest substitute-bit-vector.5 |
720 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
721 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
722 |
(result (substitute 1 0 x :start 1))) |
(result (substitute 1 0 x :start 1))) |
724 |
result)) |
result)) |
725 |
#*011111) |
#*011111) |
726 |
|
|
727 |
(deftest substitute-bitstring.6 |
(deftest substitute-bit-vector.6 |
728 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
729 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
730 |
(result (substitute 0 1 x :start 2 :end nil))) |
(result (substitute 0 1 x :start 2 :end nil))) |
732 |
result)) |
result)) |
733 |
#*010000) |
#*010000) |
734 |
|
|
735 |
(deftest substitute-bitstring.7 |
(deftest substitute-bit-vector.7 |
736 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
737 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
738 |
(result (substitute 1 0 x :end 4))) |
(result (substitute 1 0 x :end 4))) |
740 |
result)) |
result)) |
741 |
#*111101) |
#*111101) |
742 |
|
|
743 |
(deftest substitute-bitstring.8 |
(deftest substitute-bit-vector.8 |
744 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
745 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
746 |
(result (substitute 0 1 x :end nil))) |
(result (substitute 0 1 x :end nil))) |
748 |
result)) |
result)) |
749 |
#*000000) |
#*000000) |
750 |
|
|
751 |
(deftest substitute-bitstring.9 |
(deftest substitute-bit-vector.9 |
752 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
753 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
754 |
(result (substitute 0 1 x :end 3))) |
(result (substitute 0 1 x :end 3))) |
756 |
result)) |
result)) |
757 |
#*000101) |
#*000101) |
758 |
|
|
759 |
(deftest substitute-bitstring.10 |
(deftest substitute-bit-vector.10 |
760 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
761 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
762 |
(result (substitute 0 1 x :start 2 :end 4))) |
(result (substitute 0 1 x :start 2 :end 4))) |
764 |
result)) |
result)) |
765 |
#*010001) |
#*010001) |
766 |
|
|
767 |
(deftest substitute-bitstring.11 |
(deftest substitute-bit-vector.11 |
768 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
769 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
770 |
(result (substitute 1 0 x :start 2 :end 4))) |
(result (substitute 1 0 x :start 2 :end 4))) |
772 |
result)) |
result)) |
773 |
#*011101) |
#*011101) |
774 |
|
|
775 |
(deftest substitute-bitstring.12 |
(deftest substitute-bit-vector.12 |
776 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
777 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
778 |
(result (substitute 1 0 x :count 1))) |
(result (substitute 1 0 x :count 1))) |
780 |
result)) |
result)) |
781 |
#*110101) |
#*110101) |
782 |
|
|
783 |
(deftest substitute-bitstring.13 |
(deftest substitute-bit-vector.13 |
784 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
785 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
786 |
(result (substitute 1 0 x :count 0))) |
(result (substitute 1 0 x :count 0))) |
788 |
result)) |
result)) |
789 |
#*010101) |
#*010101) |
790 |
|
|
791 |
(deftest substitute-bitstring.14 |
(deftest substitute-bit-vector.14 |
792 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
793 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
794 |
(result (substitute 1 0 x :count -1))) |
(result (substitute 1 0 x :count -1))) |
796 |
result)) |
result)) |
797 |
#*010101) |
#*010101) |
798 |
|
|
799 |
(deftest substitute-bitstring.15 |
(deftest substitute-bit-vector.15 |
800 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
801 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
802 |
(result (substitute 1 0 x :count 1 :from-end t))) |
(result (substitute 1 0 x :count 1 :from-end t))) |
804 |
result)) |
result)) |
805 |
#*010111) |
#*010111) |
806 |
|
|
807 |
(deftest substitute-bitstring.16 |
(deftest substitute-bit-vector.16 |
808 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
809 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
810 |
(result (substitute 1 0 x :count 0 :from-end t))) |
(result (substitute 1 0 x :count 0 :from-end t))) |
812 |
result)) |
result)) |
813 |
#*010101) |
#*010101) |
814 |
|
|
815 |
(deftest substitute-bitstring.17 |
(deftest substitute-bit-vector.17 |
816 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
817 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
818 |
(result (substitute 1 0 x :count -1 :from-end t))) |
(result (substitute 1 0 x :count -1 :from-end t))) |
820 |
result)) |
result)) |
821 |
#*010101) |
#*010101) |
822 |
|
|
823 |
(deftest substitute-bitstring.18 |
(deftest substitute-bit-vector.18 |
824 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
825 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
826 |
(result (substitute 1 0 x :count nil))) |
(result (substitute 1 0 x :count nil))) |
828 |
result)) |
result)) |
829 |
#*111111) |
#*111111) |
830 |
|
|
831 |
(deftest substitute-bitstring.19 |
(deftest substitute-bit-vector.19 |
832 |
(let* ((orig #*010101) |
(let* ((orig #*010101) |
833 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
834 |
(result (substitute 1 0 x :count nil :from-end t))) |
(result (substitute 1 0 x :count nil :from-end t))) |
836 |
result)) |
result)) |
837 |
#*111111) |
#*111111) |
838 |
|
|
839 |
(deftest substitute-bitstring.20 |
(deftest substitute-bit-vector.20 |
840 |
(loop for i from 0 to 9 always |
(loop for i from 0 to 9 always |
841 |
(loop for j from i to 10 always |
(loop for j from i to 10 always |
842 |
(loop for c from 0 to (- j i) always |
(loop for c from 0 to (- j i) always |
851 |
(make-list (- 10 (+ i c)) :initial-element 0)))))))) |
(make-list (- 10 (+ i c)) :initial-element 0)))))))) |
852 |
t) |
t) |
853 |
|
|
854 |
(deftest substitute-bitstring.21 |
(deftest substitute-bit-vector.21 |
855 |
(loop for i from 0 to 9 always |
(loop for i from 0 to 9 always |
856 |
(loop for j from i to 10 always |
(loop for j from i to 10 always |
857 |
(loop for c from 0 to (- j i) always |
(loop for c from 0 to (- j i) always |
866 |
(make-list (- 10 j) :initial-element 1)))))))) |
(make-list (- 10 j) :initial-element 1)))))))) |
867 |
t) |
t) |
868 |
|
|
869 |
(deftest substitute-bitstring.22 |
(deftest substitute-bit-vector.22 |
870 |
(let* ((orig #*0101010101) |
(let* ((orig #*0101010101) |
871 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
872 |
(c 0) |
(c 0) |
875 |
result)) |
result)) |
876 |
#*0111110101) |
#*0111110101) |
877 |
|
|
878 |
(deftest substitute-bitstring.23 |
(deftest substitute-bit-vector.23 |
879 |
(let* ((orig #*0101010101) |
(let* ((orig #*0101010101) |
880 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
881 |
(c 0) |
(c 0) |
885 |
result)) |
result)) |
886 |
#*0111110101) |
#*0111110101) |
887 |
|
|
888 |
(deftest substitute-bitstring.24 |
(deftest substitute-bit-vector.24 |
889 |
(let* ((orig #*0101010101) |
(let* ((orig #*0101010101) |
890 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
891 |
(c 0) |
(c 0) |
895 |
result)) |
result)) |
896 |
#*0101011111) |
#*0101011111) |
897 |
|
|
898 |
(deftest substitute-bitstring.25 |
(deftest substitute-bit-vector.25 |
899 |
(let* ((orig #*0101010101) |
(let* ((orig #*0101010101) |
900 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
901 |
(c 0) |
(c 0) |
906 |
result)) |
result)) |
907 |
#*0101011111) |
#*0101011111) |
908 |
|
|
909 |
(deftest substitute-bitstring.26 |
(deftest substitute-bit-vector.26 |
910 |
(let* ((orig #*00111001011010110) |
(let* ((orig #*00111001011010110) |
911 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
912 |
(result (substitute 1 1 x :key #'1+))) |
(result (substitute 1 1 x :key #'1+))) |
914 |
result)) |
result)) |
915 |
#*11111111111111111) |
#*11111111111111111) |
916 |
|
|
917 |
(deftest substitute-bitstring.27 |
(deftest substitute-bit-vector.27 |
918 |
(let* ((orig #*00111001011010110) |
(let* ((orig #*00111001011010110) |
919 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
920 |
(result (substitute 1 1 x :key #'1+ :start 1 :end 10))) |
(result (substitute 1 1 x :key #'1+ :start 1 :end 10))) |
922 |
result)) |
result)) |
923 |
#*01111111111010110) |
#*01111111111010110) |
924 |
|
|
925 |
(deftest substitute-bitstring.28 |
(deftest substitute-bit-vector.28 |
926 |
(let* ((orig #*00111001011010110) |
(let* ((orig #*00111001011010110) |
927 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
928 |
(result (substitute 0 1 x :key #'1+ :test (complement #'eq)))) |
(result (substitute 0 1 x :key #'1+ :test (complement #'eq)))) |
930 |
result)) |
result)) |
931 |
#*00000000000000000) |
#*00000000000000000) |
932 |
|
|
933 |
(deftest substitute-bitstring.29 |
(deftest substitute-bit-vector.29 |
934 |
(let* ((orig #*00111001011010110) |
(let* ((orig #*00111001011010110) |
935 |
(x (copy-seq orig)) |
(x (copy-seq orig)) |
936 |
(result (substitute 0 1 x :key #'1+ :test-not #'eq))) |
(result (substitute 0 1 x :key #'1+ :test-not #'eq))) |
937 |
(and (equalp orig x) |
(and (equalp orig x) |
938 |
result)) |
result)) |
939 |
#*00000000000000000) |
#*00000000000000000) |
940 |
|
|
941 |
|
(deftest substitute-bit-vector.30 |
942 |
|
(let* ((x (make-array '(10) :initial-contents '(0 1 0 1 1 0 1 1 0 1) |
943 |
|
:fill-pointer 5 :element-type 'bit)) |
944 |
|
(result (substitute 1 0 x))) |
945 |
|
result) |
946 |
|
#*11111) |
947 |
|
|
948 |
|
(deftest substitute-bit-vector.31 |
949 |
|
(let* ((x (make-array '(10) :initial-contents '(0 1 0 1 1 0 1 1 0 1) |
950 |
|
:fill-pointer 5 :element-type 'bit)) |
951 |
|
(result (substitute 1 0 x :from-end t))) |
952 |
|
result) |
953 |
|
#*11111) |
954 |
|
|
955 |
|
(deftest substitute-bit-vector.32 |
956 |
|
(let* ((x (make-array '(10) :initial-contents '(0 1 0 1 1 0 1 1 0 1) |
957 |
|
:fill-pointer 5 :element-type 'bit)) |
958 |
|
(result (substitute 1 0 x :count 1))) |
959 |
|
result) |
960 |
|
#*11011) |
961 |
|
|
962 |
|
(deftest substitute-bit-vector.33 |
963 |
|
(let* ((x (make-array '(10) :initial-contents '(0 1 0 1 1 0 1 1 0 1) |
964 |
|
:fill-pointer 5 :element-type 'bit)) |
965 |
|
(result (substitute 1 0 x :from-end t :count 1))) |
966 |
|
result) |
967 |
|
#*01111) |