1 | suite 'Truthiness', ->
|
2 |
|
3 | setup ->
|
4 | @truthy = (ast) ->
|
5 | ok Optimiser.isTruthy ast
|
6 | ok not Optimiser.isFalsey ast
|
7 | @falsey = (ast) ->
|
8 | ok Optimiser.isFalsey ast
|
9 | ok not Optimiser.isTruthy ast
|
10 | @neither = (ast) ->
|
11 | ok not Optimiser.isTruthy ast
|
12 | ok not Optimiser.isFalsey ast
|
13 |
|
14 | test 'ints', ->
|
15 | @falsey new CS.Int 0
|
16 | @truthy new CS.Int 1
|
17 | @truthy new CS.Int 9e9
|
18 |
|
19 | test 'floats', ->
|
20 | @falsey new CS.Float 0.0
|
21 | @truthy new CS.Float 0.1
|
22 | @truthy new CS.Float 1.1
|
23 | @truthy new CS.Float 1.2e+3
|
24 |
|
25 | test 'strings', ->
|
26 | @falsey new CS.String ''
|
27 | @truthy new CS.String '0'
|
28 |
|
29 | test 'assignment', ->
|
30 | @truthy new CS.AssignOp (new CS.Identifier 'a'), new CS.Int 1
|
31 | @falsey new CS.AssignOp (new CS.Identifier 'a'), new CS.Int 0
|