Add do_call macro, implement Bool builtins, add tests
* I noticed that `fn call(...)` in all objects was identical, so I made a macro for it. This should make things a little easier to read, since do_call is about 30 lines a pop. * Bool has a constructor now, and a to_int and to_float implementations * Add tests for constructors and add new bool tests Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
72
tests/bool.npp
Normal file
72
tests/bool.npp
Normal file
@@ -0,0 +1,72 @@
|
||||
# Bool type operator and function tests
|
||||
|
||||
a = true
|
||||
b = false
|
||||
|
||||
# __not__
|
||||
println("__not__")
|
||||
println(!a)
|
||||
println(!!a)
|
||||
println(!!!a)
|
||||
println(!!!!a)
|
||||
println(!b)
|
||||
println(!!b)
|
||||
println(!!!b)
|
||||
println(!!!!b)
|
||||
|
||||
# __and__
|
||||
println("__and__")
|
||||
println(a && b)
|
||||
println(b && a)
|
||||
println(a && a)
|
||||
println(b && b)
|
||||
|
||||
# __or__
|
||||
println("__or__")
|
||||
println(a || b)
|
||||
println(b || a)
|
||||
println(a || a)
|
||||
println(b || b)
|
||||
|
||||
# __eq__
|
||||
println("__eq__")
|
||||
println(a == a)
|
||||
println(a == b)
|
||||
println(b == b)
|
||||
println(b == a)
|
||||
println(a == true)
|
||||
println(true == a)
|
||||
println(a == false)
|
||||
println(false == a)
|
||||
println(b == true)
|
||||
println(true == b)
|
||||
println(b == false)
|
||||
println(false == b)
|
||||
|
||||
# __ne__
|
||||
println("__ne__")
|
||||
println(a != a)
|
||||
println(a != b)
|
||||
println(b != b)
|
||||
println(b != a)
|
||||
println(a != true)
|
||||
println(true != a)
|
||||
println(a != false)
|
||||
println(false != a)
|
||||
println(b != true)
|
||||
println(true != b)
|
||||
println(b != false)
|
||||
println(false != b)
|
||||
|
||||
# constructor
|
||||
println("constructor")
|
||||
println(Bool(""))
|
||||
println(Bool(0))
|
||||
println(Bool(0.0))
|
||||
println(Bool(false))
|
||||
# This is a fun one. Bool constructor does *not* parse bools, it just checks if they are empty.
|
||||
println(Bool("false"))
|
||||
println(Bool("true"))
|
||||
println(Bool(1))
|
||||
println(Bool(1.0))
|
||||
println(Bool(true))
|
||||
Reference in New Issue
Block a user