From d5cfaa37be9e278c44a25ef448a071390597306e Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Wed, 18 Jul 2018 01:27:56 -0700 Subject: Upgrading to version 2.3 (main change: "=" instead of "<-" for assignment) --- tests/object.nom | 105 +++++++++++++++++++++---------------------------------- 1 file changed, 40 insertions(+), 65 deletions(-) (limited to 'tests/object.nom') 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 -- cgit v1.2.3