about summary refs log tree commit diff stats
path: root/archive/2.vm/063array.mu
diff options
context:
space:
mode:
Diffstat (limited to 'archive/2.vm/063array.mu')
-rw-r--r--archive/2.vm/063array.mu181
1 files changed, 0 insertions, 181 deletions
diff --git a/archive/2.vm/063array.mu b/archive/2.vm/063array.mu
deleted file mode 100644
index a56e87f0..00000000
--- a/archive/2.vm/063array.mu
+++ /dev/null
@@ -1,181 +0,0 @@
-scenario array-from-args [
-  run [
-    local-scope
-    x:&:@:num <- new-array 0, 1, 2
-    10:@:num/raw <- copy *x
-  ]
-  memory-should-contain [
-    10 <- 3  # array length
-    11 <- 0
-    12 <- 1
-    13 <- 2
-  ]
-]
-
-# create an array out of a list of args
-def new-array -> result:&:@:_elem [
-  local-scope
-  capacity:num <- copy 0
-  {
-    # while read curr-value
-    curr-value:_elem, exists?:bool <- next-input
-    break-unless exists?
-    capacity <- add capacity, 1
-    loop
-  }
-  result <- new _elem:type, capacity
-  rewind-inputs
-  i:num <- copy 0
-  {
-    # while read curr-value
-    done?:bool <- greater-or-equal i, capacity
-    break-if done?
-    curr-value:_elem, exists?:bool <- next-input
-    assert exists?, [error in rewinding inputs to new-array]
-    *result <- put-index *result, i, curr-value
-    i <- add i, 1
-    loop
-  }
-  return result
-]
-
-# fill an existing array with a set of numbers
-# (contributed by Caleb Couch)
-def fill array:&:@:num -> array:&:@:num [
-  local-scope
-  load-inputs
-  loopn:num <- copy 0
-  length:num <- length *array
-  {
-    length?:bool <- equal loopn, length
-    break-if length?
-    object:num, arg-received?:bool <- next-input
-    break-unless arg-received?
-    *array <- put-index *array, loopn, object
-    loopn <- add loopn, 1
-    loop
-  }
-]
-
-scenario fill-on-an-empty-array [
-  local-scope
-  array:&:@:num <- new number:type, 3
-  run [
-    array <- fill array, 1 2 3
-    10:@:num/raw <- copy *array
-  ]
-  memory-should-contain [
-    10 <- 3
-    11 <- 1
-    12 <- 2
-    13 <- 3
-  ]
-]
-
-scenario fill-overwrites-existing-values [
-  local-scope
-  array:&:@:num <- new number:type, 3
-  *array <- put-index *array, 0, 4
-  run [
-    array <- fill array, 1 2 3
-    10:@:num/raw <- copy *array
-  ]
-  memory-should-contain [
-    10 <- 3
-    11 <- 1
-    12 <- 2
-    13 <- 3
-  ]
-]
-
-scenario fill-exits-gracefully-when-given-no-inputs [
-  local-scope
-  array:&:@:num <- new number:type, 3
-  run [
-    array <- fill array
-    10:@:num/raw <- copy *array
-  ]
-  memory-should-contain [
-    10 <- 3
-    11 <- 0
-    12 <- 0
-    13 <- 0
-  ]
-]
-
-# swap two elements of an array
-# (contributed by Caleb Couch)
-def swap array:&:@:num, index1:num, index2:num -> array:&:@:num [
-  local-scope
-  load-inputs
-  object1:num <- index *array, index1
-  object2:num <- index *array, index2
-  *array <- put-index *array, index1, object2
-  *array <- put-index *array, index2, object1
-]
-
-scenario swap-works [
-  local-scope
-  array:&:@:num <- new number:type, 4
-  array <- fill array, 4 3 2 1
-  run [
-    array <- swap array, 0, 2
-    10:num/raw <- index *array, 0
-    11:num/raw <- index *array, 2
-  ]
-  memory-should-contain [
-    10 <- 2
-    11 <- 4
-  ]
-]
-
-# reverse the elements of an array
-# (contributed by Caleb Couch)
-def reverse array:&:@:_elem -> array:&:@:_elem [
-  local-scope
-  load-inputs
-  start:num <- copy 0
-  length:num <- length *array
-  end:num <- subtract length, 1
-  {
-    done?:bool <- greater-or-equal start, end
-    break-if done?
-    array <- swap array, start, end
-    start <- add start, 1
-    end <- subtract end, 1
-    loop
-  }
-]
-
-scenario reverse-array-odd-length [
-  local-scope
-  array:&:@:num <- new number:type, 3
-  array <- fill array, 3 2 1
-  run [
-    array <- reverse array
-    10:@:num/raw <- copy *array
-  ]
-  memory-should-contain [
-    10 <- 3
-    11 <- 1
-    12 <- 2
-    13 <- 3
-  ]
-]
-
-scenario reverse-array-even-length [
-  local-scope
-  array:&:@:num <- new number:type, 4
-  array <- fill array, 4 3 2 1
-  run [
-    array <- reverse array
-    10:@:num/raw <- copy *array
-  ]
-  memory-should-contain [
-    10 <- 4
-    11 <- 1
-    12 <- 2
-    13 <- 3
-    14 <- 4
-  ]
-]