about summary refs log tree commit diff
path: root/tvix/eval/src/tests/nix_tests/notyetpassing
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2022-10-31T10·47-0700
committerAdam Joseph <adam@westernsemico.com>2022-11-04T21·28+0000
commita79c233ae62703d1e27054084f70f6b0ddc866a4 (patch)
tree3e030be16a24b8a6c278bd88b62dfcc5334f45a5 /tvix/eval/src/tests/nix_tests/notyetpassing
parente3a66cbd5d0ffb2306b6fe2cd65b53a1dbd8394f (diff)
feat(tvix/eval): implement builtins.split r/5244
This implements builtins.split, and passes eval-okay-regex-split.nix
(which is moved out of notyetpassing).

Signed-off-by: Adam Joseph <adam@westernsemico.com>
Change-Id: Ieb0975da2058966c697ee0e2f5b3f26ccabfae57
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7143
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'tvix/eval/src/tests/nix_tests/notyetpassing')
-rw-r--r--tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-regex-split.exp1
-rw-r--r--tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-regex-split.nix48
2 files changed, 0 insertions, 49 deletions
diff --git a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-regex-split.exp b/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-regex-split.exp
deleted file mode 100644
index 27ba77ddaf..0000000000
--- a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-regex-split.exp
+++ /dev/null
@@ -1 +0,0 @@
-true
diff --git a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-regex-split.nix b/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-regex-split.nix
deleted file mode 100644
index 0073e05778..0000000000
--- a/tvix/eval/src/tests/nix_tests/notyetpassing/eval-okay-regex-split.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-with builtins;
-
-# Non capturing regex returns empty lists
-assert  split "foobar" "foobar"  == ["" [] ""];
-assert  split "fo*" "f"          == ["" [] ""];
-assert  split "fo+" "f"          == ["f"];
-assert  split "fo*" "fo"         == ["" [] ""];
-assert  split "fo*" "foo"        == ["" [] ""];
-assert  split "fo+" "foo"        == ["" [] ""];
-assert  split "fo{1,2}" "foo"    == ["" [] ""];
-assert  split "fo{1,2}" "fooo"   == ["" [] "o"];
-assert  split "fo*" "foobar"     == ["" [] "bar"];
-
-# Capturing regex returns a list of sub-matches
-assert  split "(fo*)" "f"        == ["" ["f"] ""];
-assert  split "(fo+)" "f"        == ["f"];
-assert  split "(fo*)" "fo"       == ["" ["fo"] ""];
-assert  split "(f)(o*)" "f"      == ["" ["f" ""] ""];
-assert  split "(f)(o*)" "foo"    == ["" ["f" "oo"] ""];
-assert  split "(fo+)" "foo"      == ["" ["foo"] ""];
-assert  split "(fo{1,2})" "foo"  == ["" ["foo"] ""];
-assert  split "(fo{1,2})" "fooo" == ["" ["foo"] "o"];
-assert  split "(fo*)" "foobar"   == ["" ["foo"] "bar"];
-
-# Matches are greedy.
-assert  split "(o+)" "oooofoooo" == ["" ["oooo"] "f" ["oooo"] ""];
-
-# Matches multiple times.
-assert  split "(b)" "foobarbaz"  == ["foo" ["b"] "ar" ["b"] "az"];
-
-# Split large strings containing newlines. null are inserted when a
-# pattern within the current did not match anything.
-assert  split "[[:space:]]+|([',.!?])" ''
-  Nix Rocks!
-  That's why I use it.
-''  == [
-  "Nix" [ null ] "Rocks" ["!"] "" [ null ]
-  "That" ["'"] "s" [ null ] "why" [ null ] "I" [ null ] "use" [ null ] "it" ["."] "" [ null ]
-  ""
-];
-
-# Documentation examples
-assert  split  "(a)b" "abc"      == [ "" [ "a" ] "c" ];
-assert  split  "([ac])" "abc"    == [ "" [ "a" ] "b" [ "c" ] "" ];
-assert  split  "(a)|(c)" "abc"   == [ "" [ "a" null ] "b" [ null "c" ] "" ];
-assert  split  "([[:upper:]]+)" "  FOO   " == [ "  " [ "FOO" ] "   " ];
-
-true