diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2015-02-08 15:02:33 -0800 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2015-02-08 15:02:41 -0800 |
commit | 47da2141be823660209ce545eb9863e01a14e551 (patch) | |
tree | b36c002abdb7b3a3364925d462aeccc81d729031 /mu.arc.t | |
parent | ebce8e116da49b698b79a530f5e8eefb6746c58b (diff) | |
download | mu-47da2141be823660209ce545eb9863e01a14e551.tar.gz |
722 - split at substring, and assorted helpers
Diffstat (limited to 'mu.arc.t')
-rw-r--r-- | mu.arc.t | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/mu.arc.t b/mu.arc.t index 28b7fbe4..08ff3535 100644 --- a/mu.arc.t +++ b/mu.arc.t @@ -4542,6 +4542,76 @@ (prn "F - 'split-first' cuts string at first occurrence of delimiter")) (reset) +(new-trace "string-split-first-at-substring") +(add-code + '((function main [ + (1:string-address <- new "a//b") + (2:string-address <- new "//") + (3:string-address 4:string-address <- split-first-at-substring 1:string-address 2:string-address) + ]))) +(run 'main) +(each routine completed-routines* + (aif rep.routine!error (prn "error - " it))) +;? (prn int-canon.memory*) ;? 1 +(when (or (~memory-contains-array memory*.3 "a") + (~memory-contains-array memory*.4 "b")) + (prn "F - 'split-first-at-substring' is like split-first but with a string delimiter")) + +(reset) +(new-trace "string-copy") +(add-code + '((function main [ + (1:string-address <- new "abc") + (2:string-address <- string-copy 1:string-address 1:literal 3:literal) + ]))) +(run 'main) +(each routine completed-routines* + (aif rep.routine!error (prn "error - " it))) +(when (~memory-contains-array memory*.2 "bc") + (prn "F - 'string-copy' returns a copy of a substring")) + +(reset) +(new-trace "string-copy-out-of-bounds") +(add-code + '((function main [ + (1:string-address <- new "abc") + (2:string-address <- string-copy 1:string-address 2:literal 4:literal) + ]))) +(run 'main) +(each routine completed-routines* + (aif rep.routine!error (prn "error - " it))) +(when (~memory-contains-array memory*.2 "c") + (prn "F - 'string-copy' stops at bounds")) + +(reset) +(new-trace "string-copy-out-of-bounds-2") +(add-code + '((function main [ + (1:string-address <- new "abc") + (2:string-address <- string-copy 1:string-address 3:literal 3:literal) + ]))) +(run 'main) +(each routine completed-routines* + (aif rep.routine!error (prn "error - " it))) +(when (~memory-contains-array memory*.2 "") + (prn "F - 'string-copy' returns empty string when range is out of bounds")) + +(reset) +(new-trace "min") +(add-code + '((function main [ + (1:integer <- min 3:literal 4:literal) + ]))) +(run 'main) +(each routine completed-routines* + (aif rep.routine!error (prn "error - " it))) +;? (prn int-canon.memory*) ;? 1 +(when (~is memory*.1 3) + (prn "F - 'min' returns smaller of two numbers")) + +;? (quit) ;? 2 + +(reset) (new-trace "integer-to-decimal-string") (add-code '((function main [ |