aboutsummaryrefslogtreecommitdiff
path: root/tests/object.nom
diff options
context:
space:
mode:
Diffstat (limited to 'tests/object.nom')
-rw-r--r--tests/object.nom105
1 files changed, 40 insertions, 65 deletions
diff --git a/tests/object.nom b/tests/object.nom
index 795d85e..30cf748 100644
--- a/tests/object.nom
+++ b/tests/object.nom
@@ -1,71 +1,46 @@
-#!/usr/bin/env nomsu -V1
+#!/usr/bin/env nomsu -V2.3.4.3
#
Tests for the object model defined in lib/object.nom
use "core"
use "lib/object.nom"
-
-object "Dog"
- (class Dog).genus <- "Canus"
- method [initialize %]
- %.barks or<- 0
-
- method [bark, woof]
- %barks <- ("Bark!" for % in 1 to ((me).barks))
- return: %barks joined with " "
-
- method [get pissed off]
- ((me).barks) +<- 1
-
-%d <-: new Dog {barks:2}
-as %d
- assume: (me) = %d
- assume: ((me).barks) = 2
- assume: (bark) = "Bark! Bark!"
- assume: (woof) = "Bark! Bark!"
+object "Dog":
+ (class Dog).genus = "Canus"
+ method [initialize %] (%.barks or= 0)
+ method [bark, woof]:
+ %barks = ("Bark!" for % in 1 to (me).barks)
+ return (%barks joined with " ")
+
+ method [get pissed off] ((me).barks += 1)
+
+%d = (new Dog {barks: 2})
+as %d:
+ assume ((me) == %d)
+ assume ((me).barks == 2)
+ assume ((bark) == "Bark! Bark!")
+ assume ((woof) == "Bark! Bark!")
get pissed off
- assume: ((me).barks) = 3
- assume: (bark) = "Bark! Bark! Bark!"
- assume: (me).genus = "Canus"
-assume: "\(%d.class)" = "Dog"
-assume: %d.genus = "Canus"
-assume: %d.barks = 3
-
-as: new Dog
- assume: ((me).barks) = 0
- ..or barf "Default initializer failed"
-
-as: new Dog {barks:1}
- assume: (bark) = "Bark!"
-
-action [foo]
- as: new Dog {barks:23}
- return: (me).barks
-
-assume: (foo) = 23
-..or barf: "Oops, \(foo) != 23"
-
-as: new Dog {barks:101}
- try: as (new Dog {barks:8}) (barf)
- ..and if it succeeds: barf
-
- assume: (me).barks = 101
- ..or barf "Error in nested 'as % %' failed to properly reset 'self'"
-
-
-object "Corgi" extends: class Dog
- method [sploot]
- "splooted"
-
-%corg <- (new Corgi)
-assume: %corg.barks = 0
-as: new Corgi {barks:1}
- assume: (sploot) = "splooted"
- ..or barf "subclass method failed"
-
- assume: (bark) = "Bark!"
- ..or barf "inheritance failed"
-
- assume: (woof) = "Bark!"
-
-say "Object test passed."
+ assume ((me).barks == 3)
+ assume ((bark) == "Bark! Bark! Bark!")
+ assume ((me).genus == "Canus")
+
+assume ("\(%d.class)" == "Dog")
+assume (%d.genus == "Canus")
+assume (%d.barks == 3)
+as (new Dog) (assume ((me).barks == 0) or barf "Default initializer failed")
+as (new Dog {barks: 1}) (assume ((bark) == "Bark!"))
+action [foo] (as (new Dog {barks: 23}) (return (me).barks))
+assume ((foo) == 23) or barf "Oops, \(foo) != 23"
+as (new Dog {barks: 101}):
+ try (as (new Dog {barks: 8}) (barf)) and if it succeeds (barf)
+ assume ((me).barks == 101) or barf "Error in nested 'as % %' failed to properly reset 'self'"
+
+object "Corgi" extends (class Dog) (method [sploot] "splooted")
+%corg = (new Corgi)
+assume (%corg.barks == 0)
+as (new Corgi {barks: 1}):
+ assume ((sploot) == "splooted") or barf "subclass method failed"
+ assume ((bark) == "Bark!") or barf "inheritance failed"
+ assume ((woof) == "Bark!")
+
+say "Object test passed." \ No newline at end of file