aboutsummaryrefslogtreecommitdiffstats
path: root/spec/core/value_spec.moon
diff options
context:
space:
mode:
authors-ol <s-ol@users.noreply.github.com>2020-03-24 11:39:25 +0000
committers-ol <s-ol@users.noreply.github.com>2020-03-24 11:39:25 +0000
commit677c0d2f01e14bbeca1583ec7878d80c71c3aa68 (patch)
treecc20e04697da590b546de370599eeaaef647d20c /spec/core/value_spec.moon
parentinternals/plugin-guide: first draft (diff)
downloadalive-677c0d2f01e14bbeca1583ec7878d80c71c3aa68.tar.gz
alive-677c0d2f01e14bbeca1583ec7878d80c71c3aa68.zip
Value -> Value/Event/IO-Stream
Close 12
Diffstat (limited to 'spec/core/value_spec.moon')
-rw-r--r--spec/core/value_spec.moon126
1 files changed, 63 insertions, 63 deletions
diff --git a/spec/core/value_spec.moon b/spec/core/value_spec.moon
index eeb3339..b447d32 100644
--- a/spec/core/value_spec.moon
+++ b/spec/core/value_spec.moon
@@ -1,4 +1,4 @@
-import Value, Result, Scope, SimpleRegistry from require 'core'
+import ValueStream, Result, Scope, SimpleRegistry from require 'core'
import Op, Action from require 'core.base'
import Logger from require 'logger'
Logger.init 'silent'
@@ -13,101 +13,101 @@ reg = SimpleRegistry!
setup -> reg\grab!
teardown -> reg\release!
-describe 'Value', ->
+describe 'ValueStream', ->
describe '.wrap', ->
it 'wraps numbers', ->
- got = Value.wrap 3
+ got = ValueStream.wrap 3
assert.is.equal 'num', got.type
assert.is.equal 3, got.value
it 'wraps strings', ->
- got = Value.wrap "im a happy string"
+ got = ValueStream.wrap "im a happy string"
assert.is.equal 'str', got.type
assert.is.equal "im a happy string", got.value
it 'wraps Values', ->
- pi = Value 'num', 3.14
- got = Value.wrap pi
+ pi = ValueStream 'num', 3.14
+ got = ValueStream.wrap pi
assert.is.equal pi, got
it 'wraps Opdefs', ->
- got = Value.wrap TestOp
+ got = ValueStream.wrap TestOp
assert.is.equal 'opdef', got.type
assert.is.equal TestOp, got.value
it 'wraps Bultins', ->
- got = Value.wrap TestAction
+ got = ValueStream.wrap TestAction
assert.is.equal 'builtin', got.type
assert.is.equal TestAction, got.value
it 'wraps Scopes', ->
sub = Scope!
- got = Value.wrap sub
+ got = ValueStream.wrap sub
assert.is.equal 'scope', got.type
assert.is.equal sub, got.value
it 'wraps tables', ->
- pi = Value 'num', 3.14
- got = Value.wrap { :pi }
+ pi = ValueStream 'num', 3.14
+ got = ValueStream.wrap { :pi }
assert.is.equal 'scope', got.type
assert.is.equal pi, (got.value\get 'pi')\const!
describe ':unwrap', ->
it 'returns the raw value!', ->
- assert.is.equal 3.14, (Value.num 3.14)\unwrap!
- assert.is.equal 'hi', (Value.str 'hi')\unwrap!
- assert.is.equal 'hi', (Value.sym 'hi')\unwrap!
+ assert.is.equal 3.14, (ValueStream.num 3.14)\unwrap!
+ assert.is.equal 'hi', (ValueStream.str 'hi')\unwrap!
+ assert.is.equal 'hi', (ValueStream.sym 'hi')\unwrap!
test 'can assert the type', ->
- assert.is.equal 3.14, (Value.num 3.14)\unwrap 'num'
- assert.is.equal 'hi', (Value.str 'hi')\unwrap 'str'
- assert.is.equal 'hi', (Value.sym 'hi')\unwrap 'sym'
- assert.has_error -> (Value.num 3.14)\unwrap 'sym'
- assert.has_error -> (Value.str 'hi')\unwrap 'num'
- assert.has_error -> (Value.sym 'hi')\unwrap 'str'
+ assert.is.equal 3.14, (ValueStream.num 3.14)\unwrap 'num'
+ assert.is.equal 'hi', (ValueStream.str 'hi')\unwrap 'str'
+ assert.is.equal 'hi', (ValueStream.sym 'hi')\unwrap 'sym'
+ assert.has_error -> (ValueStream.num 3.14)\unwrap 'sym'
+ assert.has_error -> (ValueStream.str 'hi')\unwrap 'num'
+ assert.has_error -> (ValueStream.sym 'hi')\unwrap 'str'
test 'has __call shorthand', ->
- assert.is.equal 3.14, (Value.num 3.14)!
- assert.is.equal 'hi', (Value.str 'hi')!
- assert.is.equal 'hi', (Value.sym 'hi')!
- assert.is.equal 3.14, (Value.num 3.14) 'num'
- assert.is.equal 'hi', (Value.str 'hi') 'str'
- assert.is.equal 'hi', (Value.sym 'hi') 'sym'
- assert.has_error -> (Value.num 3.14) 'sym'
- assert.has_error -> (Value.str 'hi') 'num'
- assert.has_error -> (Value.sym 'hi') 'str'
+ assert.is.equal 3.14, (ValueStream.num 3.14)!
+ assert.is.equal 'hi', (ValueStream.str 'hi')!
+ assert.is.equal 'hi', (ValueStream.sym 'hi')!
+ assert.is.equal 3.14, (ValueStream.num 3.14) 'num'
+ assert.is.equal 'hi', (ValueStream.str 'hi') 'str'
+ assert.is.equal 'hi', (ValueStream.sym 'hi') 'sym'
+ assert.has_error -> (ValueStream.num 3.14) 'sym'
+ assert.has_error -> (ValueStream.str 'hi') 'num'
+ assert.has_error -> (ValueStream.sym 'hi') 'str'
describe 'overrides __eq', ->
it 'compares the type', ->
- val = Value 'num', 3
- assert.is.equal (Value.num 3), val
- assert.not.equal (Value.str '3'), val
+ val = ValueStream 'num', 3
+ assert.is.equal (ValueStream.num 3), val
+ assert.not.equal (ValueStream.str '3'), val
- val = Value 'str', 'hello'
- assert.is.equal (Value.str 'hello'), val
- assert.not.equal (Value.sym 'hello'), val
+ val = ValueStream 'str', 'hello'
+ assert.is.equal (ValueStream.str 'hello'), val
+ assert.not.equal (ValueStream.sym 'hello'), val
it 'compares the value', ->
- val = Value 'num', 3
- assert.is.equal (Value.num 3), val
- assert.not.equal (Value.num 4), val
+ val = ValueStream 'num', 3
+ assert.is.equal (ValueStream.num 3), val
+ assert.not.equal (ValueStream.num 4), val
describe ':set', ->
it 'sets the value', ->
- val = Value 'num', 3
- assert.is.equal (Value.num 3), val
+ val = ValueStream 'num', 3
+ assert.is.equal (ValueStream.num 3), val
val\set 4
- assert.is.equal (Value.num 4), val
- assert.not.equal (Value.num 3), val
+ assert.is.equal (ValueStream.num 4), val
+ assert.not.equal (ValueStream.num 3), val
it 'marks the value dirty', ->
- val = Value 'num', 3
+ val = ValueStream 'num', 3
assert.is.false val\dirty!
val\set 4
@@ -118,42 +118,42 @@ describe 'Value', ->
assert_noop = (val) ->
assert.is.equal val, val\eval!\const!
- assert_noop Value.num 2
- assert_noop Value.str 'hello'
+ assert_noop ValueStream.num 2
+ assert_noop ValueStream.str 'hello'
it 'looks up symbols in the scope', ->
scope = with Scope!
- \set 'number', Result value: Value.num 3
- \set 'hello', Result value: Value.str "world"
- \set 'goodbye', Result value: Value.sym "again"
+ \set 'number', Result value: ValueStream.num 3
+ \set 'hello', Result value: ValueStream.str "world"
+ \set 'goodbye', Result value: ValueStream.sym "again"
assert_eval = (sym, val) ->
- const = Value.sym sym
+ const = ValueStream.sym sym
assert.is.equal val, (const\eval scope)\const!
- assert_eval 'number', Value.num 3
- assert_eval 'hello', Value.str "world"
- assert_eval 'goodbye', Value.sym "again"
+ assert_eval 'number', ValueStream.num 3
+ assert_eval 'hello', ValueStream.str "world"
+ assert_eval 'goodbye', ValueStream.sym "again"
it ':quote s literals as themselves', ->
assert_noop = (val) -> assert.is.equal val, val\quote!
- assert_noop Value.num 2
- assert_noop Value.str 'hello'
- assert_noop Value.sym 'world'
+ assert_noop ValueStream.num 2
+ assert_noop ValueStream.str 'hello'
+ assert_noop ValueStream.sym 'world'
it ':clone sliterals as themselves', ->
assert_noop = (val) -> assert.is.equal val, val\clone!
- assert_noop Value.num 2
- assert_noop Value.str 'hello'
- assert_noop Value.sym 'world'
+ assert_noop ValueStream.num 2
+ assert_noop ValueStream.str 'hello'
+ assert_noop ValueStream.sym 'world'
describe ':fork', ->
it 'is equal to the original', ->
- a = Value.num 2
- b = Value.str 'asdf'
- c = with Value 'weird', {}, '(raw)'
+ a = ValueStream.num 2
+ b = ValueStream.str 'asdf'
+ c = with ValueStream 'weird', {}, '(raw)'
\set {}
aa, bb, cc = a\fork!, b\fork!, c\fork!
@@ -168,8 +168,8 @@ describe 'Value', ->
assert.is.equal c.raw, cc.raw
it 'isolates the original from the fork', ->
- a = Value.num 3
- b = with Value 'weird', {}, '(raw)'
+ a = ValueStream.num 3
+ b = with ValueStream 'weird', {}, '(raw)'
\set {}
aa, bb = a\fork!, b\fork!