From 90c56d31352a0eeccd382ef5921baf3af4971040 Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Fri, 26 Jan 2018 20:20:12 -0800 Subject: Added a ton of tests for virtually all the functionality. Helped me find and fix a lot of latent problems. --- tests/collections.nom | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 tests/collections.nom (limited to 'tests/collections.nom') diff --git a/tests/collections.nom b/tests/collections.nom new file mode 100644 index 0000000..ec79653 --- /dev/null +++ b/tests/collections.nom @@ -0,0 +1,43 @@ +#.. + Tests for the stuff defined in lib/control_flow.nom + +use "lib/core.nom" + +assume ((2nd to last in [1,2,3,4,5]) = 4) +assume ((first in [1,2]) = 1) +assume ((last in [1,2]) = 2) +assume (3 is in [1,2,3,4,5]) +assume (99 isn't in [1,2,3]) +assume ({x:no} has key "x") +assume ({x:no} doesn't have key "y") +assume (not ({x:no} doesn't have key "x")) +assume ((size of [1,2,3]) = 3) +%list <- [1,2,3,4,5] +append 6 to %list +assume ((last in %list) = 6) +pop from %list +assume ((last in %list) = 5) +remove index 1 from %list +assume ((first in %list) = 2) +assume (((% * %) for all [1,2,3]) = [1,4,9]) +assume ((%k = (%v * %v) for %k = %v in {x:1,y:2,z:3}) = {x:1,y:4,z:9}) +assume ((%k for %k = %v in {x:1}) = ["x"]) +assume ((% = (% * %) for all [1,2,3]) = {1:1,2:4,3:9}) +assume (([[1,2],[3,4]] flattened) = [1,2,3,4]) +assume ((entries in {x:1}) = [{key:"x",value:1}]) +assume ((keys in {x:1}) = ["x"]) +assume ((values in {x:1}) = [1]) +assume ((sorted [3,1,2]) = [1,2,3]) +%x <- [3,1,2] +sort %x +assume (%x = [1,2,3]) +sort %x by (-%) +assume (%x = [3,2,1]) +%keys <- {1:999,2:0,3:50} +sort %x by (% in %keys) +assume (%x = [2,3,1]) +assume ((unique [1,2,1,3,2,3]) = [1,2,3]) +%c <- (new counter) +for all ["x","y","x","x","y"] + (% in %c) +<- 1 +assume (%c = {x:3,y:2}) -- cgit v1.2.3