diff options
| author | s-ol <s-ol@users.noreply.github.com> | 2020-03-24 11:39:25 +0000 |
|---|---|---|
| committer | s-ol <s-ol@users.noreply.github.com> | 2020-03-24 11:39:25 +0000 |
| commit | 677c0d2f01e14bbeca1583ec7878d80c71c3aa68 (patch) | |
| tree | cc20e04697da590b546de370599eeaaef647d20c /spec/core/value_spec.moon | |
| parent | internals/plugin-guide: first draft (diff) | |
| download | alive-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.moon | 126 |
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! |
