From 7e780567ec7c1060e33af92b2015b23fd1c9e672 Mon Sep 17 00:00:00 2001 From: Erik Rauer Date: Thu, 1 Apr 2021 11:26:55 -0500 Subject: [PATCH] Add test for `string/rest` This adds a test for the `string/rest` instruction --- .../propeller/push/instructions/string_spec.clj | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/test/propeller/push/instructions/string_spec.clj b/test/propeller/push/instructions/string_spec.clj index 21d3281..64707c6 100644 --- a/test/propeller/push/instructions/string_spec.clj +++ b/test/propeller/push/instructions/string_spec.clj @@ -428,4 +428,19 @@ (prop/for-all [str gen/string char1 gen/char char2 gen/char] - (check-replace-first-char str char1 char2))) \ No newline at end of file + (check-replace-first-char str char1 char2))) + + +;; string/rest + +(defn check-rest + [value] + (let [start-state (state/push-to-stack state/empty-state :string value) + end-state ((:string_rest @core/instruction-table) start-state) + expected-result (apply str (rest value))] + (= expected-result + (state/peek-stack end-state :string)))) + +(defspec rest-spec 100 + (prop/for-all [str gen/string] + (check-rest str)))