From 35aff7680cde8d57c7d1c8d066d981f5ddc12f31 Mon Sep 17 00:00:00 2001 From: mike lowis Date: Fri, 9 Apr 2021 16:13:47 -0400 Subject: [PATCH] changed ASSERT to Assert and NEW to New --- lib/obnc/FilesTest.obn | 200 ++++---- lib/obnc/InTest.obn | 50 +- lib/obnc/Input.obn | 2 +- lib/obnc/Input0Test.obn | 14 +- lib/obnc/InputTest.obn | 16 +- lib/obnc/MathTest.obn | 100 ++-- lib/obnc/Strings.obn | 24 +- lib/obnc/StringsTest.obn | 76 +-- lib/obnc/XYplane.obn | 2 +- lib/obnc/XYplaneTest.obn | 16 +- src/.Oberon.y.swp | Bin 0 -> 131072 bytes src/Oberon.y | 5 +- src/Table.c | 4 +- src/y.tab.c | 5 +- subword | 2 + .../T7ActualVarParamImported1.obn | 2 +- tests/obnc/passing/T2TypeDeclarations.obn | 24 +- tests/obnc/passing/T3VariableDeclarations.obn | 6 +- tests/obnc/passing/T4Expressions.obn | 468 +++++++++--------- tests/obnc/passing/T5Statements.obn | 140 +++--- tests/obnc/passing/T5SystemStatements.obn | 42 +- .../obnc/passing/T6ProcedureDeclarations.obn | 26 +- tests/obnc/passing/T7Modules.obn | 46 +- 23 files changed, 635 insertions(+), 635 deletions(-) create mode 100644 src/.Oberon.y.swp create mode 100755 subword diff --git a/lib/obnc/FilesTest.obn b/lib/obnc/FilesTest.obn index d0712d5..9b37be0 100644 --- a/lib/obnc/FilesTest.obn +++ b/lib/obnc/FilesTest.obn @@ -23,8 +23,8 @@ module FilesTest; var f: Files.File; begin f := Files.Old("FilesTest.obn"); - ASSERT(f # nil); - ASSERT(f is Files.File) + Assert(f # nil); + Assert(f is Files.File) end TestOld; @@ -32,8 +32,8 @@ module FilesTest; var f: Files.File; begin f := Files.New("NewTest"); - ASSERT(f # nil); - ASSERT(f is Files.File) + Assert(f # nil); + Assert(f is Files.File) end TestNew; @@ -47,28 +47,28 @@ module FilesTest; end IsRider; begin f := Files.New("RegisterTest"); - ASSERT(f # nil); - ASSERT(IsRider(r)); + Assert(f # nil); + Assert(IsRider(r)); Files.Register(f); f := Files.Old("RegisterTest"); - ASSERT(f # nil); + Assert(f # nil); Files.Delete("RegisterTest", res); - ASSERT(res = 0); + Assert(res = 0); f := Files.New("RegisterTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.Write(r, 37); Files.Close(f); Files.Register(f); - ASSERT(Files.Length(f) = 1); + Assert(Files.Length(f) = 1); f := Files.Old("RegisterTest"); - ASSERT(f # nil); - ASSERT(Files.Length(f) = 1); + Assert(f # nil); + Assert(Files.Length(f) = 1); Files.Delete("RegisterTest", res); - ASSERT(res = 0) + Assert(res = 0) end TestRegister; @@ -77,12 +77,12 @@ module FilesTest; r: Files.Rider; begin f := Files.New("CloseTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.Write(r, 65); - ASSERT(Files.Length(f) <= 1); + Assert(Files.Length(f) <= 1); Files.Close(f); - ASSERT(Files.Length(f) = 1) + Assert(Files.Length(f) = 1) end TestClose; @@ -91,11 +91,11 @@ module FilesTest; r: Files.Rider; begin f := Files.New("PurgeTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.Write(r, 65); Files.Purge(f); - ASSERT(Files.Length(f) = 0) + Assert(Files.Length(f) = 0) end TestPurge; @@ -104,14 +104,14 @@ module FilesTest; res: Int; begin f := Files.New("DeleteTest"); - ASSERT(f # nil); + Assert(f # nil); Files.Register(f); f := Files.Old("DeleteTest"); - ASSERT(f # nil); + Assert(f # nil); Files.Delete("DeleteTest", res); - ASSERT(res = 0); + Assert(res = 0); f := Files.Old("DeleteTest"); - ASSERT(f = nil) + Assert(f = nil) end TestDelete; @@ -120,21 +120,21 @@ module FilesTest; res: Int; begin f := Files.New("RenameTest"); - ASSERT(f # nil); + Assert(f # nil); Files.Register(f); f := Files.Old("RenameTest"); - ASSERT(f # nil); + Assert(f # nil); Files.Rename("RenameTest", "RenameTest1", res); - ASSERT(res = 0); + Assert(res = 0); f := Files.Old("RenameTest"); - ASSERT(f = nil); + Assert(f = nil); f := Files.Old("RenameTest1"); - ASSERT(f # nil); + Assert(f # nil); Files.Delete("RenameTest1", res); - ASSERT(res = 0) + Assert(res = 0) end TestRename; @@ -143,11 +143,11 @@ module FilesTest; res: Int; begin f := Files.New("LengthTest"); - ASSERT(f # nil); + Assert(f # nil); Files.Register(f); - ASSERT(Files.Length(f) = 0); + Assert(Files.Length(f) = 0); Files.Delete("LengthTest", res); - ASSERT(res = 0) + Assert(res = 0) end TestLength; @@ -157,25 +157,25 @@ module FilesTest; hour, minute, second, year, month, day: Int; begin f := Files.Old("FilesTest.obn"); - ASSERT(f # nil); + Assert(f # nil); Files.GetDate(f, t, d); hour := t div 4096; - ASSERT(hour >= 0); - ASSERT(hour < 24); + Assert(hour >= 0); + Assert(hour < 24); minute := t div 64 mod 64; - ASSERT(minute >= 0); - ASSERT(minute < 60); + Assert(minute >= 0); + Assert(minute < 60); second := t mod 64; - ASSERT(second >= 0); - ASSERT(second < 60); + Assert(second >= 0); + Assert(second < 60); year := d div 512; - ASSERT(year >= 0); + Assert(year >= 0); month := d div 32 mod 16; - ASSERT(month >= 1); - ASSERT(month <= 12); + Assert(month >= 1); + Assert(month <= 12); day := d mod 32; - ASSERT(day >= 1); - ASSERT(day <= 31) + Assert(day >= 1); + Assert(day <= 31) end TestDate; @@ -184,9 +184,9 @@ module FilesTest; r: Files.Rider; begin f := Files.New("SetTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); - ASSERT(~r.eof) + Assert(~r.eof) end TestSetPos; @@ -195,9 +195,9 @@ module FilesTest; r: Files.Rider; begin f := Files.New("PosTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); - ASSERT(Files.Pos(r) = 0) + Assert(Files.Pos(r) = 0) end TestPos; @@ -206,9 +206,9 @@ module FilesTest; r: Files.Rider; begin f := Files.New("BaseTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); - ASSERT(Files.Base(r) = f) + Assert(Files.Base(r) = f) end TestBase; @@ -218,16 +218,16 @@ module FilesTest; b: Byte; begin f := Files.New("ReadWriteTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.Write(r, 65); Files.Close(f); - ASSERT(Files.Length(f) = 1); + Assert(Files.Length(f) = 1); Files.SetPos(r, f, 0); Files.Read(r, b); - ASSERT(~r.eof); - ASSERT(b = 65); - ASSERT(Files.Pos(r) = 1) + Assert(~r.eof); + Assert(b = 65); + Assert(Files.Pos(r) = 1) end TestReadWrite; @@ -237,7 +237,7 @@ module FilesTest; i: Int; begin f := Files.New("ReadWriteIntTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.WriteInt(r, 100); @@ -246,13 +246,13 @@ module FilesTest; Files.SetPos(r, f, 0); Files.ReadInt(r, i); - ASSERT(~r.eof); - ASSERT(i = 100); + Assert(~r.eof); + Assert(i = 100); Files.ReadInt(r, i); - ASSERT(~r.eof); - ASSERT(i = -1000); + Assert(~r.eof); + Assert(i = -1000); Files.ReadInt(r, i); - ASSERT(r.eof) + Assert(r.eof) end TestReadWriteInt; @@ -262,7 +262,7 @@ module FilesTest; x: Real; begin f := Files.New("ReadWriteRealTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.WriteReal(r, 3.14); @@ -271,13 +271,13 @@ module FilesTest; Files.SetPos(r, f, 0); Files.ReadReal(r, x); - ASSERT(~r.eof); - ASSERT(ABS(x - 3.14) < 1.0E-6); + Assert(~r.eof); + Assert(ABS(x - 3.14) < 1.0E-6); Files.ReadReal(r, x); - ASSERT(~r.eof); - ASSERT(ABS(x - (-3.14)) < 1.0E-6); + Assert(~r.eof); + Assert(ABS(x - (-3.14)) < 1.0E-6); Files.ReadReal(r, x); - ASSERT(r.eof) + Assert(r.eof) end TestReadWriteReal; @@ -287,7 +287,7 @@ module FilesTest; i: Int; begin f := Files.New("ReadWriteNumTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.WriteNum(r, 100); @@ -296,13 +296,13 @@ module FilesTest; Files.SetPos(r, f, 0); Files.ReadNum(r, i); - ASSERT(~r.eof); - ASSERT(i = 100); + Assert(~r.eof); + Assert(i = 100); Files.ReadNum(r, i); - ASSERT(~r.eof); - ASSERT(i = -1000); + Assert(~r.eof); + Assert(i = -1000); Files.ReadNum(r, i); - ASSERT(r.eof) + Assert(r.eof) end TestReadWriteNum; @@ -312,7 +312,7 @@ module FilesTest; s: array 32 of Char; begin f := Files.New("ReadWriteStringTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.WriteString(r, "hello"); @@ -322,16 +322,16 @@ module FilesTest; Files.SetPos(r, f, 0); Files.ReadString(r, s); - ASSERT(~r.eof); - ASSERT(s = "hello"); + Assert(~r.eof); + Assert(s = "hello"); Files.ReadString(r, s); - ASSERT(~r.eof); - ASSERT(s = "there"); + Assert(~r.eof); + Assert(s = "there"); Files.ReadString(r, s); - ASSERT(~r.eof); - ASSERT(s = ""); + Assert(~r.eof); + Assert(s = ""); Files.ReadString(r, s); - ASSERT(r.eof) + Assert(r.eof) end TestReadWriteString; @@ -341,7 +341,7 @@ module FilesTest; s: Set; begin f := Files.New("ReadWriteSetTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.WriteSet(r, {}); @@ -351,16 +351,16 @@ module FilesTest; Files.SetPos(r, f, 0); Files.ReadSet(r, s); - ASSERT(~r.eof); - ASSERT(s = {}); + Assert(~r.eof); + Assert(s = {}); Files.ReadSet(r, s); - ASSERT(~r.eof); - ASSERT(s = {0}); + Assert(~r.eof); + Assert(s = {0}); Files.ReadSet(r, s); - ASSERT(~r.eof); - ASSERT(s = {0, 1}); + Assert(~r.eof); + Assert(s = {0, 1}); Files.ReadSet(r, s); - ASSERT(r.eof) + Assert(r.eof) end TestReadWriteSet; @@ -370,7 +370,7 @@ module FilesTest; b: Bool; begin f := Files.New("ReadWriteBoolTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.WriteBool(r, true); @@ -379,13 +379,13 @@ module FilesTest; Files.SetPos(r, f, 0); Files.ReadBool(r, b); - ASSERT(~r.eof); - ASSERT(b); + Assert(~r.eof); + Assert(b); Files.ReadBool(r, b); - ASSERT(~r.eof); - ASSERT(~b); + Assert(~r.eof); + Assert(~b); Files.ReadBool(r, b); - ASSERT(r.eof) + Assert(r.eof) end TestReadWriteBool; @@ -398,7 +398,7 @@ module FilesTest; for i := 0 to LEN(buf) - 1 do buf[i] := i + 1 end; f := Files.New("ReadWriteBytesTest"); - ASSERT(f # nil); + Assert(f # nil); Files.SetPos(r, f, 0); Files.WriteBytes(r, buf, LEN(buf)); @@ -410,19 +410,19 @@ module FilesTest; Files.SetPos(r, f, 0); Files.ReadBytes(r, buf, LEN(buf)); - ASSERT(~r.eof); + Assert(~r.eof); for i := 0 to LEN(buf) - 1 do - ASSERT(buf[i] = i + 1) + Assert(buf[i] = i + 1) end; Files.ReadBytes(r, buf, LEN(buf)); - ASSERT(~r.eof); + Assert(~r.eof); for i := 0 to LEN(buf) - 1 do - ASSERT(buf[i] = i + 1) + Assert(buf[i] = i + 1) end; Files.ReadBytes(r, buf, LEN(buf)); - ASSERT(r.eof) + Assert(r.eof) end TestReadWriteBytes; begin diff --git a/lib/obnc/InTest.obn b/lib/obnc/InTest.obn index 23581b7..7bca02f 100644 --- a/lib/obnc/InTest.obn +++ b/lib/obnc/InTest.obn @@ -30,51 +30,51 @@ module InTest; begin In.Character(ch); - ASSERT(In.Done); - ASSERT(ch = "a"); + Assert(In.Done); + Assert(ch = "a"); In.Integer(n); - ASSERT(In.Done); - ASSERT(n = 37); + Assert(In.Done); + Assert(n = 37); In.Integer(n); - ASSERT(In.Done); - ASSERT(n = 37H); + Assert(In.Done); + Assert(n = 37H); In.RealNum(x); - ASSERT(In.Done); - ASSERT(x >= 3.14 - eps); - ASSERT(x <= 3.14 + eps); + Assert(In.Done); + Assert(x >= 3.14 - eps); + Assert(x <= 3.14 + eps); In.String(s); - ASSERT(In.Done); - ASSERT(s = ""); + Assert(In.Done); + Assert(s = ""); In.String(s); - ASSERT(In.Done); - ASSERT(s = "foo bar"); + Assert(In.Done); + Assert(s = "foo bar"); In.String(s); - ASSERT(In.Done); - ASSERT(s = 0X); + Assert(In.Done); + Assert(s = 0X); In.String(s); - ASSERT(In.Done); - ASSERT(s = 1FX); + Assert(In.Done); + Assert(s = 1FX); In.String(s); - ASSERT(In.Done); - ASSERT(s = 0FFX); + Assert(In.Done); + Assert(s = 0FFX); In.Name(s); - ASSERT(In.Done); - ASSERT(s = "foo/bar"); + Assert(In.Done); + Assert(s = "foo/bar"); In.Line(s); - ASSERT(In.Done); - ASSERT(s = ""); + Assert(In.Done); + Assert(s = ""); In.Line(s); - ASSERT(In.Done); - ASSERT(s = "foo bar") + Assert(In.Done); + Assert(s = "foo bar") end InTest. diff --git a/lib/obnc/Input.obn b/lib/obnc/Input.obn index 77f5339..8f4f6da 100644 --- a/lib/obnc/Input.obn +++ b/lib/obnc/Input.obn @@ -38,5 +38,5 @@ Implements the basic library module from "The Oakwood Guidelines for Oberon-2 Co end Time; begin - ASSERT(Input0.TimeUnit > 0) (*silence "Input0 unused" compiler note*) + Assert(Input0.TimeUnit > 0) (*silence "Input0 unused" compiler note*) end Input. diff --git a/lib/obnc/Input0Test.obn b/lib/obnc/Input0Test.obn index 1e8764f..b6bd0a4 100644 --- a/lib/obnc/Input0Test.obn +++ b/lib/obnc/Input0Test.obn @@ -28,11 +28,11 @@ module Input0Test; n := Input.Available() until n >= 3; Input.Read(ch); - ASSERT(ch = "a"); + Assert(ch = "a"); Input.Read(ch); - ASSERT(ch = "b"); + Assert(ch = "b"); Input.Read(ch); - ASSERT(ch = "c"); + Assert(ch = "c"); Out.String("OK"); Out.Ln; end TestAvailable; @@ -44,14 +44,14 @@ module Input0Test; Out.String("Press space ... "); Out.Ln; Input.Read(ch); - ASSERT(ch = " "); + Assert(ch = " "); Out.String("OK"); Out.Ln; Out.String("Press $ ... "); Out.Ln; Input.Read(ch); - ASSERT(ch = "$"); + Assert(ch = "$"); Out.String("OK"); Out.Ln end TestRead; @@ -59,8 +59,8 @@ module Input0Test; procedure TestTime; begin - ASSERT(Input.TimeUnit > 0); - ASSERT(Input.Time() > 0) + Assert(Input.TimeUnit > 0); + Assert(Input.Time() > 0) end TestTime; diff --git a/lib/obnc/InputTest.obn b/lib/obnc/InputTest.obn index 67d5359..1d27470 100644 --- a/lib/obnc/InputTest.obn +++ b/lib/obnc/InputTest.obn @@ -27,7 +27,7 @@ module InputTest; repeat n := Input.Available() until n # 0; - ASSERT(n > 0); + Assert(n > 0); Out.String("OK"); Out.Ln; Input.Read(ch) @@ -40,14 +40,14 @@ module InputTest; Out.String("Press space ... "); Out.Ln; Input.Read(ch); - ASSERT(ch = " "); + Assert(ch = " "); Out.String("OK"); Out.Ln; Out.String("Press $ ... "); Out.Ln; Input.Read(ch); - ASSERT(ch = "$"); + Assert(ch = "$"); Out.String("OK"); Out.Ln end TestRead; @@ -67,9 +67,9 @@ module InputTest; repeat Input.Mouse(buttons, x, y); until buttons # {}; - ASSERT(button in buttons); - ASSERT(x >= 0); - ASSERT(y >= 0); + Assert(button in buttons); + Assert(x >= 0); + Assert(y >= 0); Out.String("OK"); Out.Ln; repeat (*wait until button has been released*) @@ -88,8 +88,8 @@ module InputTest; procedure TestTime; begin - ASSERT(Input.TimeUnit > 0); - ASSERT(Input.Time() > 0) + Assert(Input.TimeUnit > 0); + Assert(Input.Time() > 0) end TestTime; diff --git a/lib/obnc/MathTest.obn b/lib/obnc/MathTest.obn index caf5a54..d192ffd 100644 --- a/lib/obnc/MathTest.obn +++ b/lib/obnc/MathTest.obn @@ -23,72 +23,72 @@ module MathTest; eps = 0.01; begin - ASSERT(ABS(Math.sqrt(1.0) - 1.0) < eps); - ASSERT(ABS(Math.sqrt(4.0) - 2.0) < eps); + Assert(ABS(Math.sqrt(1.0) - 1.0) < eps); + Assert(ABS(Math.sqrt(4.0) - 2.0) < eps); - ASSERT(ABS(Math.power(0.0, 1.0) - 0.0) < eps); - ASSERT(ABS(Math.power(1.0, 0.0) - 1.0) < eps); - ASSERT(ABS(Math.power(2.0, 3.0) - 8.0) < eps); - ASSERT(ABS(Math.power(2.0, -3.0) - 1.0 / 8.0) < eps); + Assert(ABS(Math.power(0.0, 1.0) - 0.0) < eps); + Assert(ABS(Math.power(1.0, 0.0) - 1.0) < eps); + Assert(ABS(Math.power(2.0, 3.0) - 8.0) < eps); + Assert(ABS(Math.power(2.0, -3.0) - 1.0 / 8.0) < eps); - ASSERT(ABS(Math.exp(0.0) - 1.0) < eps); - ASSERT(ABS(Math.exp(1.0) - Math.e) < eps); - ASSERT(ABS(Math.exp(2.0) - Math.e * Math.e) < eps); - ASSERT(ABS(Math.exp(-2.0) - 1.0 / Math.e / Math.e) < eps); + Assert(ABS(Math.exp(0.0) - 1.0) < eps); + Assert(ABS(Math.exp(1.0) - Math.e) < eps); + Assert(ABS(Math.exp(2.0) - Math.e * Math.e) < eps); + Assert(ABS(Math.exp(-2.0) - 1.0 / Math.e / Math.e) < eps); - ASSERT(ABS(Math.ln(1.0) - 0.0) < eps); - ASSERT(ABS(Math.ln(Math.e) - 1.0) < eps); - ASSERT(ABS(Math.ln(Math.e * Math.e) - 2.0) < eps); + Assert(ABS(Math.ln(1.0) - 0.0) < eps); + Assert(ABS(Math.ln(Math.e) - 1.0) < eps); + Assert(ABS(Math.ln(Math.e * Math.e) - 2.0) < eps); - ASSERT(ABS(Math.log(1.0, 2.0) - 0.0) < eps); - ASSERT(ABS(Math.log(Math.e, Math.e) - 1.0) < eps); - ASSERT(ABS(Math.log(100.0, 10.0) - 2.0) < eps); + Assert(ABS(Math.log(1.0, 2.0) - 0.0) < eps); + Assert(ABS(Math.log(Math.e, Math.e) - 1.0) < eps); + Assert(ABS(Math.log(100.0, 10.0) - 2.0) < eps); - ASSERT(ABS(Math.round(0.4) - 0.0) < eps); - ASSERT(ABS(Math.round(-0.4) - 0.0) < eps); - ASSERT(ABS(Math.round(0.6) - 1.0) < eps); - ASSERT(ABS(Math.round(-0.6) - (-1.0)) < eps); + Assert(ABS(Math.round(0.4) - 0.0) < eps); + Assert(ABS(Math.round(-0.4) - 0.0) < eps); + Assert(ABS(Math.round(0.6) - 1.0) < eps); + Assert(ABS(Math.round(-0.6) - (-1.0)) < eps); - ASSERT(ABS(Math.sin(0.0) - 0.0) < eps); - ASSERT(ABS(Math.sin(Math.pi / 6.0) - 0.5) < eps); - ASSERT(ABS(Math.sin(Math.pi / 2.0) - 1.0) < eps); + Assert(ABS(Math.sin(0.0) - 0.0) < eps); + Assert(ABS(Math.sin(Math.pi / 6.0) - 0.5) < eps); + Assert(ABS(Math.sin(Math.pi / 2.0) - 1.0) < eps); - ASSERT(ABS(Math.cos(0.0) - 1.0) < eps); - ASSERT(ABS(Math.cos(Math.pi / 3.0) - 0.5) < eps); - ASSERT(ABS(Math.cos(Math.pi / 2.0) - 0.0) < eps); + Assert(ABS(Math.cos(0.0) - 1.0) < eps); + Assert(ABS(Math.cos(Math.pi / 3.0) - 0.5) < eps); + Assert(ABS(Math.cos(Math.pi / 2.0) - 0.0) < eps); - ASSERT(ABS(Math.tan(0.0) - 0.0) < eps); - ASSERT(ABS(Math.tan(Math.pi / 4.0) - 1.0) < eps); + Assert(ABS(Math.tan(0.0) - 0.0) < eps); + Assert(ABS(Math.tan(Math.pi / 4.0) - 1.0) < eps); - ASSERT(ABS(Math.arcsin(0.0) - 0.0) < eps); - ASSERT(ABS(Math.arcsin(0.5) - Math.pi / 6.0) < eps); - ASSERT(ABS(Math.arcsin(1.0) - Math.pi / 2.0) < eps); + Assert(ABS(Math.arcsin(0.0) - 0.0) < eps); + Assert(ABS(Math.arcsin(0.5) - Math.pi / 6.0) < eps); + Assert(ABS(Math.arcsin(1.0) - Math.pi / 2.0) < eps); - ASSERT(ABS(Math.arccos(1.0) - 0.0) < eps); - ASSERT(ABS(Math.arccos(0.5) - Math.pi / 3.0) < eps); - ASSERT(ABS(Math.arccos(0.0) - Math.pi / 2.0) < eps); + Assert(ABS(Math.arccos(1.0) - 0.0) < eps); + Assert(ABS(Math.arccos(0.5) - Math.pi / 3.0) < eps); + Assert(ABS(Math.arccos(0.0) - Math.pi / 2.0) < eps); - ASSERT(ABS(Math.arctan(0.0) - 0.0) < eps); - ASSERT(ABS(Math.arctan(1.0) - Math.pi / 4.0) < eps); + Assert(ABS(Math.arctan(0.0) - 0.0) < eps); + Assert(ABS(Math.arctan(1.0) - Math.pi / 4.0) < eps); - ASSERT(ABS(Math.arctan2(0.0, 2.0) - 0.0) < eps); - ASSERT(ABS(Math.arctan2(2.0, 2.0) - Math.pi / 4.0) < eps); + Assert(ABS(Math.arctan2(0.0, 2.0) - 0.0) < eps); + Assert(ABS(Math.arctan2(2.0, 2.0) - Math.pi / 4.0) < eps); - ASSERT(ABS(Math.sinh(0.0) - 0.0) < eps); - ASSERT(ABS(Math.sinh(1.0) - (Math.e - 1.0 / Math.e) / 2.0) < eps); + Assert(ABS(Math.sinh(0.0) - 0.0) < eps); + Assert(ABS(Math.sinh(1.0) - (Math.e - 1.0 / Math.e) / 2.0) < eps); - ASSERT(ABS(Math.cosh(0.0) - 1.0) < eps); - ASSERT(ABS(Math.cosh(1.0) - (Math.e + 1.0 / Math.e) / 2.0) < eps); + Assert(ABS(Math.cosh(0.0) - 1.0) < eps); + Assert(ABS(Math.cosh(1.0) - (Math.e + 1.0 / Math.e) / 2.0) < eps); - ASSERT(ABS(Math.tanh(0.0) - 0.0) < eps); - ASSERT(ABS(Math.tanh(1.0) - (Math.e - 1.0 / Math.e) / (Math.e + 1.0 / Math.e)) < eps); + Assert(ABS(Math.tanh(0.0) - 0.0) < eps); + Assert(ABS(Math.tanh(1.0) - (Math.e - 1.0 / Math.e) / (Math.e + 1.0 / Math.e)) < eps); - ASSERT(ABS(Math.arcsinh(0.0) - 0.0) < eps); - ASSERT(ABS(Math.arcsinh((Math.e - 1.0 / Math.e) / 2.0) - 1.0) < eps); + Assert(ABS(Math.arcsinh(0.0) - 0.0) < eps); + Assert(ABS(Math.arcsinh((Math.e - 1.0 / Math.e) / 2.0) - 1.0) < eps); - ASSERT(ABS(Math.arccosh(1.0) - 0.0) < eps); - ASSERT(ABS(Math.arccosh((Math.e + 1.0 / Math.e) / 2.0) - 1.0) < eps); + Assert(ABS(Math.arccosh(1.0) - 0.0) < eps); + Assert(ABS(Math.arccosh((Math.e + 1.0 / Math.e) / 2.0) - 1.0) < eps); - ASSERT(ABS(Math.arctanh(0.0) - 0.0) < eps); - ASSERT(ABS(Math.arctanh((Math.e - 1.0 / Math.e) / (Math.e + 1.0 / Math.e)) - 1.0) < eps) + Assert(ABS(Math.arctanh(0.0) - 0.0) < eps); + Assert(ABS(Math.arctanh((Math.e - 1.0 / Math.e) / (Math.e + 1.0 / Math.e)) - 1.0) < eps) end MathTest. diff --git a/lib/obnc/Strings.obn b/lib/obnc/Strings.obn index 30a10ab..ba95fd6 100644 --- a/lib/obnc/Strings.obn +++ b/lib/obnc/Strings.obn @@ -33,8 +33,8 @@ Implements the basic library module from "The Oakwood Guidelines for Oberon-2 Co i, lim: Int; begin destLength := Length(dest); - ASSERT(pos >= 0); - ASSERT(pos <= destLength); + Assert(pos >= 0); + Assert(pos <= destLength); sourceLength := Length(source); newLength := Min(destLength + sourceLength, LEN(dest) - 1); @@ -73,9 +73,9 @@ Implements the basic library module from "The Oakwood Guidelines for Oberon-2 Co var length, n1, i: Int; begin length := Length(s); - ASSERT(pos >= 0); - ASSERT(pos <= length); - ASSERT(n >= 0); + Assert(pos >= 0); + Assert(pos <= length); + Assert(n >= 0); n1 := Min(n, length - pos); (*actual number of characters to delete*) for i := pos to length - n1 do @@ -89,8 +89,8 @@ Implements the basic library module from "The Oakwood Guidelines for Oberon-2 Co var destLength, n, i: Int; begin destLength := Length(dest); - ASSERT(pos >= 0); - ASSERT(pos <= destLength); + Assert(pos >= 0); + Assert(pos <= destLength); n := Min(Length(source), LEN(dest) - 1 - pos); (*actual number of characters to replace*) @@ -110,8 +110,8 @@ Implements the basic library module from "The Oakwood Guidelines for Oberon-2 Co var sourceLength, n1, i: Int; begin sourceLength := Length(source); - ASSERT(pos >= 0); - ASSERT(pos <= sourceLength); + Assert(pos >= 0); + Assert(pos <= sourceLength); n1 := Min(n, Min(sourceLength - pos, LEN(dest) - 1)); (*actual number of characters to extract*) for i := 0 to n1 - 1 do @@ -125,8 +125,8 @@ Implements the basic library module from "The Oakwood Guidelines for Oberon-2 Co (**Pos(pat, s, pos) returns the position of the first occurrence of pat in s. Searching starts at position pos (0 <= pos <= Length(s)). If pat is not found, -1 is returned.*) var idxs, idxp, result: Int; begin - ASSERT(pos >= 0); - ASSERT(pos < LEN(s)); + Assert(pos >= 0); + Assert(pos < LEN(s)); idxs := pos - 1; repeat @@ -143,7 +143,7 @@ Implements the basic library module from "The Oakwood Guidelines for Oberon-2 Co result := -1 end; - ASSERT((result = -1) or (result >= 0) & (result + idxp < LEN(s))) + Assert((result = -1) or (result >= 0) & (result + idxp < LEN(s))) return result end Pos; diff --git a/lib/obnc/StringsTest.obn b/lib/obnc/StringsTest.obn index 1958cc4..f3933fa 100644 --- a/lib/obnc/StringsTest.obn +++ b/lib/obnc/StringsTest.obn @@ -25,93 +25,93 @@ module StringsTest; begin (*test Length*) - ASSERT(Strings.Length("") = 0); + Assert(Strings.Length("") = 0); shortStr := ""; - ASSERT(Strings.Length(shortStr) = 0); + Assert(Strings.Length(shortStr) = 0); shortStr := 22X; - ASSERT(Strings.Length(shortStr) = 1); + Assert(Strings.Length(shortStr) = 1); shortStr := "123"; - ASSERT(Strings.Length(shortStr) = 3); + Assert(Strings.Length(shortStr) = 3); (*test Insert*) s := "cde"; Strings.Insert("ab", 0, s); - ASSERT(s = "abcde"); + Assert(s = "abcde"); s := "adef"; Strings.Insert("bc", 1, s); - ASSERT(s = "abcdef"); + Assert(s = "abcdef"); shortStr := "ade"; Strings.Insert("bc", 1, shortStr); - ASSERT(shortStr = "abc"); + Assert(shortStr = "abc"); shortStr := "aef"; Strings.Insert("bcd", 1, shortStr); - ASSERT(shortStr = "abc"); + Assert(shortStr = "abc"); s := "foo bar"; Strings.Insert(" baz", Strings.Length(s), s); - ASSERT(s = "foo bar baz"); + Assert(s = "foo bar baz"); Strings.Insert(" qux qux qux qux qux", Strings.Length(s), s); - ASSERT(s = "foo bar baz q"); + Assert(s = "foo bar baz q"); (*test Append*) s := ""; Strings.Append("foo", s); - ASSERT(s = "foo"); + Assert(s = "foo"); Strings.Append(" bar", s); - ASSERT(s = "foo bar"); + Assert(s = "foo bar"); Strings.Append(" baz qux", s); - ASSERT(s = "foo bar baz q"); + Assert(s = "foo bar baz q"); (*test Delete*) s := "foo bar baz"; Strings.Delete(s, 11, 4); - ASSERT(s = "foo bar baz"); + Assert(s = "foo bar baz"); Strings.Delete(s, 7, 4); - ASSERT(s = "foo bar"); + Assert(s = "foo bar"); Strings.Delete(s, 0, 4); - ASSERT(s = "bar"); + Assert(s = "bar"); Strings.Delete(s, 1, 10); - ASSERT(s = "b"); + Assert(s = "b"); Strings.Delete(s, 0, 0); - ASSERT(s = "b"); + Assert(s = "b"); Strings.Delete(s, 0, 1); - ASSERT(s = ""); + Assert(s = ""); (*test Replace*) s := "foo bar baz"; Strings.Replace("qux", 4, s); - ASSERT(s = "foo qux baz"); + Assert(s = "foo qux baz"); s := "foo bar"; Strings.Replace("qux qux qux", 5, s); - ASSERT(s = "foo bqux qux "); + Assert(s = "foo bqux qux "); s := "foo"; Strings.Replace(" bar", 3, s); - ASSERT(s = "foo bar"); + Assert(s = "foo bar"); (*test Extract*) Strings.Extract("foo bar", 4, 3, shortStr); - ASSERT(shortStr = "bar"); + Assert(shortStr = "bar"); Strings.Extract("foo bar", 4, 10, shortStr); - ASSERT(shortStr = "bar"); + Assert(shortStr = "bar"); Strings.Extract("foo bar", 0, 6, shortStr); - ASSERT(shortStr = "foo"); + Assert(shortStr = "foo"); Strings.Extract("foo bar", 7, 4, shortStr); - ASSERT(shortStr = ""); + Assert(shortStr = ""); (*test Pos*) - ASSERT(Strings.Pos("", "", 0) = 0); - ASSERT(Strings.Pos("", "foo", 0) = 0); - ASSERT(Strings.Pos("", "foo", 1) = 1); - ASSERT(Strings.Pos("", "foo", 3) = 3); - ASSERT(Strings.Pos("foo", "foo", 0) = 0); - ASSERT(Strings.Pos("foo", "fool", 0) = 0); - ASSERT(Strings.Pos("ool", "fool", 0) = 1); - ASSERT(Strings.Pos("oo", "fool", 0) = 1); - ASSERT(Strings.Pos("fools", "fool", 0) = -1); - ASSERT(Strings.Pos("ools", "fool", 0) = -1); - ASSERT(Strings.Pos("ol", "fool", 1) = 2); + Assert(Strings.Pos("", "", 0) = 0); + Assert(Strings.Pos("", "foo", 0) = 0); + Assert(Strings.Pos("", "foo", 1) = 1); + Assert(Strings.Pos("", "foo", 3) = 3); + Assert(Strings.Pos("foo", "foo", 0) = 0); + Assert(Strings.Pos("foo", "fool", 0) = 0); + Assert(Strings.Pos("ool", "fool", 0) = 1); + Assert(Strings.Pos("oo", "fool", 0) = 1); + Assert(Strings.Pos("fools", "fool", 0) = -1); + Assert(Strings.Pos("ools", "fool", 0) = -1); + Assert(Strings.Pos("ol", "fool", 1) = 2); (*test Cap*) s := "foo Bar BAZ"; Strings.Cap(s); - ASSERT(s = "FOO BAR BAZ") + Assert(s = "FOO BAR BAZ") end StringsTest. diff --git a/lib/obnc/XYplane.obn b/lib/obnc/XYplane.obn index 4c88ee8..04fe889 100644 --- a/lib/obnc/XYplane.obn +++ b/lib/obnc/XYplane.obn @@ -81,5 +81,5 @@ end drawpixels. *) begin - ASSERT(Input.TimeUnit > 0) (*silence "Input unused" compiler note*) + Assert(Input.TimeUnit > 0) (*silence "Input unused" compiler note*) end XYplane. diff --git a/lib/obnc/XYplaneTest.obn b/lib/obnc/XYplaneTest.obn index 1d2ef37..c241114 100644 --- a/lib/obnc/XYplaneTest.obn +++ b/lib/obnc/XYplaneTest.obn @@ -26,10 +26,10 @@ module XYplaneTest; & (y >= 0) & (y < XYplane.H); XYplane.Clear; XYplane.Dot(x, y, XYplane.draw); - ASSERT(withinBounds & XYplane.IsDot(x, y) + Assert(withinBounds & XYplane.IsDot(x, y) or ~withinBounds & ~XYplane.IsDot(x, y)); XYplane.Dot(x, y, XYplane.erase); - ASSERT(~XYplane.IsDot(x, y)) + Assert(~XYplane.IsDot(x, y)) end TestPosition; @@ -73,18 +73,18 @@ module XYplaneTest; (*test SetSize*) XYplane.SetSize(640, 480); XYplane.Open; - ASSERT(XYplane.W = 640); - ASSERT(XYplane.H = 480); + Assert(XYplane.W = 640); + Assert(XYplane.H = 480); (*test UseColor and Color*) XYplane.UseColor(00FF3FH); XYplane.Dot(100, 100, XYplane.draw); - ASSERT(XYplane.Color(100, 100) = 00FF3FH); - ASSERT(XYplane.IsDot(100, 100)); + Assert(XYplane.Color(100, 100) = 00FF3FH); + Assert(XYplane.IsDot(100, 100)); XYplane.UseColor(0); XYplane.Dot(100, 100, XYplane.draw); - ASSERT(XYplane.Color(100, 100) = 0); - ASSERT(~XYplane.IsDot(100, 100)) + Assert(XYplane.Color(100, 100) = 0); + Assert(~XYplane.IsDot(100, 100)) end Run; begin diff --git a/src/.Oberon.y.swp b/src/.Oberon.y.swp new file mode 100644 index 0000000000000000000000000000000000000000..0627e870e1c18ed2153d21a6056ddbb8866ef7d4 GIT binary patch literal 131072 zcmYc?2=nw+u+TGPU|?VnU|>kwQjoBMr-LDE0t-WKN=|-xW-&+xFD}b0&dkrls{|}r z2Q^SXIKQ+gIaNQmGCwIVS--d_S>Hb?wJ1MNuM(_olo$00nI7#kTH zfJ|0aQdAHY3I#Do@n{H)hQMeDjE2By2#kinXb6mkz-S1JhQJ63fsz6_hI$4D1}3O~ zbD=aN8qERauYl69?mkQ%Cscebloo?ZKq&?;sCYM&J`9zBQViTs@qQ@n2Xzoko(C#^ z9!lRuljntsPlM8Hm>~?9em)47VIGurVu3JV^864k!vZM%08L&1D&7XA8(1L>n0`SB zmtiuLW@CdeVDdr`F2gJ+Jrhk{7%F}cN*l977%=@J5H8$(U(n=5q4M*g^b}}>!Sstk z#bNdvLn90(FAkN5#m`wZc?qa|CX|kVMkq|bBvd>fN*_d%mx7AJMw1Mn5f0NY4VABe z(u>jLWuW2>P+A(AAYl4sq2jRkosA|h2bB+o(w5K!1Jf@L6>oylJ!taKsA z5X{TK5Wvg8V8hG6pvlX?AO`AB@iH*H;bCC7#lygGjE8|?Ee`|3EFK1ib{+>kPKOP1K8y*G*IUWWEE*=Jk@7xRwPq-NvE^sq2?BQl$Sjo-6FqNBup^=+`p@Ex$ zA%mNN!JC_bL6@6>fuEa!fsdPk;S(1F!$&R#hVxtu3_H0P7-n-ZFwEj&U?|{XVDRK( zV36lxVEDnwz;Kn5fnfzF1H*Do28MP{28LKp28I|;1_o3=AhY z7#NmtFfi0{Ffc@OFfc@MFfeFyFfeFwFfhDiXJFXO&cM*j&cM*b&cG1K&cG1C&cMLS z&cN`5je%hU8v{cH8v}z48v_Fe8w0}h&dk6d$IQU6go%M6hlzn9n~8zJjfsK5m5G6YhlzoKlZkduOu}+waA)*GdVx6xI`g2Be6(9D>EfE zuf&=`wKOj?KTn~WfkCyFp|~WmBr{o|EI%_v!L_0wzo;a*GB+tdCnPZ`CshMUcX4HI zT4qjaKw?QobgZT|1B1R+T4`Q#NoIatu|isYkwR{MN@-52LP1e}N-0EGOP>M7eCLeR z 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 literal 0 HcmV?d00001 diff --git a/src/Oberon.y b/src/Oberon.y index e9d7ea9..a8290f4 100644 --- a/src/Oberon.y +++ b/src/Oberon.y @@ -3590,7 +3590,7 @@ static Trees_Node PredeclaredProcedureAST(const char procName[], Trees_Node expL static const struct { const char *name; int symbol; } symbols[] = { {"ABS", TREES_ABS_PROC}, {"ASR", TREES_ASR_PROC}, - {"ASSERT", TREES_ASSERT_PROC}, + {"Assert", TREES_ASSERT_PROC}, {"CHR", TREES_CHR_PROC}, {"DEC", TREES_DEC_PROC}, {"EXCL", TREES_EXCL_PROC}, @@ -3600,8 +3600,7 @@ static Trees_Node PredeclaredProcedureAST(const char procName[], Trees_Node expL {"INCL", TREES_INCL_PROC}, {"LEN", TREES_LEN_PROC}, {"LSL", TREES_LSL_PROC}, - {"NEW", TREES_NEW_PROC}, - {"ODD", TREES_ODD_PROC}, + {"New", TREES_NEW_PROC}, {"ORD", TREES_ORD_PROC}, {"PACK", TREES_PACK_PROC}, {"ROR", TREES_ROR_PROC}, diff --git a/src/Table.c b/src/Table.c index a3b0f2d..f375689 100644 --- a/src/Table.c +++ b/src/Table.c @@ -81,7 +81,7 @@ void Table_Init(void) static const struct { const char *name; int kind, type; } predecIdents[] = { {"ABS", TREES_PROCEDURE_KIND, TREES_ABS_PROC}, {"ASR", TREES_PROCEDURE_KIND, TREES_ASR_PROC}, - {"ASSERT", TREES_PROCEDURE_KIND, TREES_ASSERT_PROC}, + {"Assert", TREES_PROCEDURE_KIND, TREES_ASSERT_PROC}, {"Bool", TREES_TYPE_KIND, TREES_BOOLEAN_TYPE}, {"Byte", TREES_TYPE_KIND, TREES_BYTE_TYPE}, {"CHR", TREES_PROCEDURE_KIND, TREES_CHR_PROC}, @@ -95,7 +95,7 @@ void Table_Init(void) {"Int", TREES_TYPE_KIND, TREES_INTEGER_TYPE}, {"LEN", TREES_PROCEDURE_KIND, TREES_LEN_PROC}, {"LSL", TREES_PROCEDURE_KIND, TREES_LSL_PROC}, - {"NEW", TREES_PROCEDURE_KIND, TREES_NEW_PROC}, + {"New", TREES_PROCEDURE_KIND, TREES_NEW_PROC}, {"ORD", TREES_PROCEDURE_KIND, TREES_ORD_PROC}, {"PACK", TREES_PROCEDURE_KIND, TREES_PACK_PROC}, {"ROR", TREES_PROCEDURE_KIND, TREES_ROR_PROC}, diff --git a/src/y.tab.c b/src/y.tab.c index c754de4..aaab518 100644 --- a/src/y.tab.c +++ b/src/y.tab.c @@ -5568,7 +5568,7 @@ static Trees_Node PredeclaredProcedureAST(const char procName[], Trees_Node expL static const struct { const char *name; int symbol; } symbols[] = { {"ABS", TREES_ABS_PROC}, {"ASR", TREES_ASR_PROC}, - {"ASSERT", TREES_ASSERT_PROC}, + {"Assert", TREES_ASSERT_PROC}, {"CHR", TREES_CHR_PROC}, {"DEC", TREES_DEC_PROC}, {"EXCL", TREES_EXCL_PROC}, @@ -5578,8 +5578,7 @@ static Trees_Node PredeclaredProcedureAST(const char procName[], Trees_Node expL {"INCL", TREES_INCL_PROC}, {"LEN", TREES_LEN_PROC}, {"LSL", TREES_LSL_PROC}, - {"NEW", TREES_NEW_PROC}, - {"ODD", TREES_ODD_PROC}, + {"New", TREES_NEW_PROC}, {"ORD", TREES_ORD_PROC}, {"PACK", TREES_PACK_PROC}, {"ROR", TREES_ROR_PROC}, diff --git a/subword b/subword new file mode 100755 index 0000000..6cda803 --- /dev/null +++ b/subword @@ -0,0 +1,2 @@ +#!/bin/sh +find . -type f -name "*$3*" -exec sed -i -e "s/\\b$1\\b/$2/g" {} \; diff --git a/tests/obnc/failing-at-compile-time/T7ActualVarParamImported1.obn b/tests/obnc/failing-at-compile-time/T7ActualVarParamImported1.obn index 06797e0..dd44ca7 100644 --- a/tests/obnc/failing-at-compile-time/T7ActualVarParamImported1.obn +++ b/tests/obnc/failing-at-compile-time/T7ActualVarParamImported1.obn @@ -20,5 +20,5 @@ module T7ActualVarParamImported1; import A; begin - NEW(A.p) + New(A.p) end T7ActualVarParamImported1. diff --git a/tests/obnc/passing/T2TypeDeclarations.obn b/tests/obnc/passing/T2TypeDeclarations.obn index 4de46c6..7ba35de 100644 --- a/tests/obnc/passing/T2TypeDeclarations.obn +++ b/tests/obnc/passing/T2TypeDeclarations.obn @@ -91,13 +91,13 @@ module T2TypeDeclarations; proc: procedure end; begin - NEW(x); - ASSERT(x.ptr = nil); - NEW(y); - ASSERT(y.proc = nil); - NEW(z); - ASSERT(z.ptr = nil); - ASSERT(z.proc = nil) + New(x); + Assert(x.ptr = nil); + New(y); + Assert(y.proc = nil); + New(z); + Assert(z.ptr = nil); + Assert(z.proc = nil) end TestMemoryAllocation; @@ -116,7 +116,7 @@ module T2TypeDeclarations; var x: P; y: T; begin - NEW(x); + New(x); x.i := 1; y.f := 1 end TestScope; @@ -125,16 +125,16 @@ begin TestMemoryAllocation; s1 := s; table[0] := nil; - NEW(t); - NEW(i); + New(t); + New(i); t.content := i; t.content(IntegerNode).value := 1; t.proc := TreeProc; - NEW(e); + New(e); n.elem := left; n.next := nil; n.p := NodeProc; - NEW(p); + New(p); a[0].f := nil; TestScope end T2TypeDeclarations. diff --git a/tests/obnc/passing/T3VariableDeclarations.obn b/tests/obnc/passing/T3VariableDeclarations.obn index 9b06f43..fcfb2d6 100644 --- a/tests/obnc/passing/T3VariableDeclarations.obn +++ b/tests/obnc/passing/T3VariableDeclarations.obn @@ -39,7 +39,7 @@ module T3VariableDeclarations; procedure AssertVector(var v: Vector); begin - ASSERT(v is Vector) + Assert(v is Vector) end AssertVector; begin @@ -49,8 +49,8 @@ module T3VariableDeclarations; AssertVector(rs[0].pos); AssertVector(rs[0].size); - NEW(rp); - ASSERT(rp is Rectangle); + New(rp); + Assert(rp is Rectangle); AssertVector(rp.pos); AssertVector(rp.size); end TestInitialization; diff --git a/tests/obnc/passing/T4Expressions.obn b/tests/obnc/passing/T4Expressions.obn index d700b0b..35b9162 100644 --- a/tests/obnc/passing/T4Expressions.obn +++ b/tests/obnc/passing/T4Expressions.obn @@ -48,21 +48,21 @@ module T4Expressions; begin s := "hello"; - ASSERT(s[1] = "e"); + Assert(s[1] = "e"); A[1, 2] := 1; - ASSERT(A[1, 2] = A[1][2]); + Assert(A[1, 2] = A[1][2]); i := 0; j := 0; A[0, 0] := ABS(A[IncReturnZero(i), IncReturnZero(j)]); - ASSERT(i = 1); - ASSERT(j = 1); + Assert(i = 1); + Assert(j = 1); - NEW(a[0]); + New(a[0]); a[0].a[0] := 1; - ASSERT(a[0].a[0] = 1); + Assert(a[0].a[0] = 1); a[0]^.f := F; - ASSERT(a[0].f() = 1); + Assert(a[0].f() = 1); end TestDesignators; @@ -76,13 +76,13 @@ module T4Expressions; Out.Integer(ORD({1, 2, a, 5, b, 8}), 0); Out.Ln; Out.Integer(ORD({1, 2, a..b, 8}), 0); Out.Ln; Out.Integer(ORD({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}), 0); Out.Ln; - ASSERT({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}); + Assert({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}); i := 0; j := 0; A := {IncReturnZero(i)..IncReturnZero(j)}; - ASSERT(A = {0}); - ASSERT(i = 1); - ASSERT(j = 1) + Assert(A = {0}); + Assert(i = 1); + Assert(j = 1) end TestSetConstructors; @@ -103,147 +103,147 @@ Out.Integer(ORD({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}), 0); Out.Ln; t1: T1; begin (*booleans*) - ASSERT(true = true); - ASSERT(true # false); + Assert(true = true); + Assert(true # false); b := true; b1 := false; - ASSERT(b = true); - ASSERT(b1 # true); + Assert(b = true); + Assert(b1 # true); (*characters / single-character strings*) ch := 0X; ch1 := "a"; - ASSERT(ch = 0X); - ASSERT(ch # "a"); - ASSERT(ch < ch1); - ASSERT(ch <= 0X); - ASSERT(ch <= "a"); - ASSERT(ch1 > ch); - (*ASSERT(ch >= 0X);*) - ASSERT("a" >= ch); + Assert(ch = 0X); + Assert(ch # "a"); + Assert(ch < ch1); + Assert(ch <= 0X); + Assert(ch <= "a"); + Assert(ch1 > ch); + (*Assert(ch >= 0X);*) + Assert("a" >= ch); ch := 7FX; ch1 := 80X; - ASSERT(ch < ch1); + Assert(ch < ch1); (*integers*) - ASSERT(0 = 0); - ASSERT(0 # 1); - ASSERT(0 < 1); - ASSERT(0 <= 0); - ASSERT(0 <= 1); - ASSERT(1 > 0); - ASSERT(0 >= 0); - ASSERT(1 >= 0); - ASSERT(0 in {0}); - ASSERT(~(1 in {0})); + Assert(0 = 0); + Assert(0 # 1); + Assert(0 < 1); + Assert(0 <= 0); + Assert(0 <= 1); + Assert(1 > 0); + Assert(0 >= 0); + Assert(1 >= 0); + Assert(0 in {0}); + Assert(~(1 in {0})); n := 0; - ASSERT(n = 0); - ASSERT(n # 1); - ASSERT(n < 1); - ASSERT(n <= 0); - ASSERT(n <= 1); - ASSERT(n < 1); - ASSERT(n >= 0); - ASSERT(n >= -1); - ASSERT(n in {0}); - ASSERT(~(1 in {n})); + Assert(n = 0); + Assert(n # 1); + Assert(n < 1); + Assert(n <= 0); + Assert(n <= 1); + Assert(n < 1); + Assert(n >= 0); + Assert(n >= -1); + Assert(n in {0}); + Assert(~(1 in {n})); i := 0; j := 0; b := IncReturnZero(i) in IncReturnEmpty(j); - ASSERT(i = 1); - ASSERT(j = 1); + Assert(i = 1); + Assert(j = 1); (*real numbers*) - ASSERT(0.0 = 0.0); - ASSERT(0.0 # 1.0); - ASSERT(0.0 < 1.0); - ASSERT(0.0 <= 0.0); - ASSERT(0.0 <= 1.0); - ASSERT(1.0 > 0.0); - ASSERT(0.0 >= 0.0); - ASSERT(1.0 >= 0.0); + Assert(0.0 = 0.0); + Assert(0.0 # 1.0); + Assert(0.0 < 1.0); + Assert(0.0 <= 0.0); + Assert(0.0 <= 1.0); + Assert(1.0 > 0.0); + Assert(0.0 >= 0.0); + Assert(1.0 >= 0.0); x := 0.0; - ASSERT(x = 0.0); - ASSERT(x # 1.0); - ASSERT(x < 1.0); - ASSERT(x <= 0.0); - ASSERT(x <= 1.0); - ASSERT(1.0 > x); - ASSERT(x >= 0.0); - ASSERT(x >= -1.0); + Assert(x = 0.0); + Assert(x # 1.0); + Assert(x < 1.0); + Assert(x <= 0.0); + Assert(x <= 1.0); + Assert(1.0 > x); + Assert(x >= 0.0); + Assert(x >= -1.0); (*bytes*) y := 0; - ASSERT(y = 0); - ASSERT(y < 1); - ASSERT(y <= 0); - ASSERT(y <= 1); - ASSERT(1 > y); - (*ASSERT(y >= 0);*) - ASSERT(y in {0}); - ASSERT(~(1 in {y})); + Assert(y = 0); + Assert(y < 1); + Assert(y <= 0); + Assert(y <= 1); + Assert(1 > y); + (*Assert(y >= 0);*) + Assert(y in {0}); + Assert(~(1 in {y})); (*sets*) - ASSERT({0, 1} = {1, 0}); - ASSERT({0} # {0, 1}); - ASSERT({1 .. 0} = {}); + Assert({0, 1} = {1, 0}); + Assert({0} # {0, 1}); + Assert({1 .. 0} = {}); n := 1; - ASSERT({n .. 0} = {}); + Assert({n .. 0} = {}); A := {0}; B := {0, 1}; - ASSERT(A = {0}); - ASSERT(B # {0}); - ASSERT(A # B); + Assert(A = {0}); + Assert(B # {0}); + Assert(A # B); (*strings / characters / character arrays*) - ASSERT("foo" = "foo"); - ASSERT("foo" # "bar"); - ASSERT("bar" < "foo"); - ASSERT("foo" <= "foo"); - ASSERT("bar" <= "foo"); - ASSERT("foo" > "bar"); - ASSERT("foo" >= "foo"); - ASSERT("foo" >= "bar"); + Assert("foo" = "foo"); + Assert("foo" # "bar"); + Assert("bar" < "foo"); + Assert("foo" <= "foo"); + Assert("bar" <= "foo"); + Assert("foo" > "bar"); + Assert("foo" >= "foo"); + Assert("foo" >= "bar"); ch := "b"; - ASSERT("b" = ch); - ASSERT("f" # ch); - ASSERT(ch < "c"); - ASSERT("b" <= ch); - ASSERT("a" <= ch); - ASSERT("c" > ch); - ASSERT("b" >= ch); - ASSERT("c" >= ch); + Assert("b" = ch); + Assert("f" # ch); + Assert(ch < "c"); + Assert("b" <= ch); + Assert("a" <= ch); + Assert("c" > ch); + Assert("b" >= ch); + Assert("c" >= ch); str := "foo"; - ASSERT("foo" = str); - ASSERT("fool" # str); - ASSERT("fo" # str); - ASSERT("bar" # str); - ASSERT("bar" < str); - ASSERT("fo" < str); - ASSERT("foo" <= str); - ASSERT("bar" <= str); - ASSERT("qux" > str); - ASSERT("foo" >= str); - ASSERT("qux" >= str); + Assert("foo" = str); + Assert("fool" # str); + Assert("fo" # str); + Assert("bar" # str); + Assert("bar" < str); + Assert("fo" < str); + Assert("foo" <= str); + Assert("bar" <= str); + Assert("qux" > str); + Assert("foo" >= str); + Assert("qux" >= str); strs[0] := ""; strs[1] := "bar"; - ASSERT(~(str = strs[1])); - ASSERT(str # strs[1]); - ASSERT(~(str < strs[1])); - ASSERT(~(str <= strs[1])); - ASSERT(str > strs[1]); - ASSERT(str >= strs[1]); + Assert(~(str = strs[1])); + Assert(str # strs[1]); + Assert(~(str < strs[1])); + Assert(~(str <= strs[1])); + Assert(str > strs[1]); + Assert(str >= strs[1]); str[0] := 7FX; str[1] := 0X; strs[1][0] := 80X; strs[1][1] := 0X; - ASSERT(str < strs[1]); + Assert(str < strs[1]); (*pointers*) - NEW(t1); + New(t1); t := t1; - ASSERT(t = t1); - ASSERT(t1 = t); + Assert(t = t1); + Assert(t1 = t); t := nil; - ASSERT((t is T) or ~(t is T)) (*The value of nil is T is undefined.*) + Assert((t is T) or ~(t is T)) (*The value of nil is T is undefined.*) end TestRelationalOperations; @@ -256,62 +256,62 @@ Out.Integer(ORD({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}), 0); Out.Ln; A: Set; begin (*booleans*) - ASSERT(true or true); - ASSERT(true or false); - ASSERT(false or true); + Assert(true or true); + Assert(true or false); + Assert(false or true); b := true; - ASSERT(b or true); - ASSERT(b or false); - ASSERT(false or b); + Assert(b or true); + Assert(b or false); + Assert(false or b); (*integers*) - ASSERT(1 + 1 = 2); - ASSERT(1 - 1 = 0); + Assert(1 + 1 = 2); + Assert(1 - 1 = 0); n := 1; - ASSERT(+n = +1); - ASSERT(-n = -1); - ASSERT(n + 1 = 2); - ASSERT(n - 1 = 0); - ASSERT(-n + 1 = 0); - ASSERT(-n - 1 = -2); + Assert(+n = +1); + Assert(-n = -1); + Assert(n + 1 = 2); + Assert(n - 1 = 0); + Assert(-n + 1 = 0); + Assert(-n - 1 = -2); (*reals*) - ASSERT(1.0 + 1.0 >= 2.0 - eps); - ASSERT(1.0 + 1.0 <= 2.0 + eps); - ASSERT(1.0 - 1.0 >= -eps); - ASSERT(1.0 - 1.0 <= eps); + Assert(1.0 + 1.0 >= 2.0 - eps); + Assert(1.0 + 1.0 <= 2.0 + eps); + Assert(1.0 - 1.0 >= -eps); + Assert(1.0 - 1.0 <= eps); x := 1.0; - ASSERT(+x = +1.0); - ASSERT(-x = -1.0); - ASSERT(x + 1.0 >= 2.0 - eps); - ASSERT(x + 1.0 <= 2.0 + eps); - ASSERT(x - 1.0 >= -eps); - ASSERT(x - 1.0 <= eps); - ASSERT(-x + 1.0 >= - eps); - ASSERT(-x + 1.0 <= eps); - ASSERT(-x - 1.0 >= -2.0 - eps); - ASSERT(-x - 1.0 <= -2.0 + eps); + Assert(+x = +1.0); + Assert(-x = -1.0); + Assert(x + 1.0 >= 2.0 - eps); + Assert(x + 1.0 <= 2.0 + eps); + Assert(x - 1.0 >= -eps); + Assert(x - 1.0 <= eps); + Assert(-x + 1.0 >= - eps); + Assert(-x + 1.0 <= eps); + Assert(-x - 1.0 >= -2.0 - eps); + Assert(-x - 1.0 <= -2.0 + eps); if SYSTEM.SIZE(Real) > 8 then x := 2.0E+308; (*greater than maximum value of binary64*) - ASSERT(x > 1.0E+308); - ASSERT(x < 3.0E+308) + Assert(x > 1.0E+308); + Assert(x < 3.0E+308) end; (*bytes*) y := 1; - ASSERT(+y = +1); - ASSERT(-y = -1); - ASSERT(y + 1= 2); - ASSERT(1 - y = 0); + Assert(+y = +1); + Assert(-y = -1); + Assert(y + 1= 2); + Assert(1 - y = 0); (*sets*) - ASSERT({0, 1} + (-{0, 1}) = -{}); - ASSERT({0, 1} + {0, 2} = {0 .. 2}); - ASSERT({0, 1} - {0, 2} = {1}); + Assert({0, 1} + (-{0, 1}) = -{}); + Assert({0, 1} + {0, 2} = {0 .. 2}); + Assert({0, 1} - {0, 2} = {1}); A := {0, 1}; - ASSERT(A + (-{0, 1}) = -{}); - ASSERT(A + {0, 2} = {0 .. 2}); - ASSERT(A - {0, 2} = {1}) + Assert(A + (-{0, 1}) = -{}); + Assert(A + {0, 2} = {0 .. 2}); + Assert(A - {0, 2} = {1}) end TestAdditiveOperations; @@ -324,54 +324,54 @@ Out.Integer(ORD({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}), 0); Out.Ln; A: Set; begin (*booleans*) - ASSERT(true & true); + Assert(true & true); b := true; - ASSERT(b & true); + Assert(b & true); (*integers*) - ASSERT(9 * 2 = 18); - ASSERT(9 div 4 = 2); - ASSERT((-9) div 4 = -3); - ASSERT(9 mod 4 = 1); - ASSERT((-9) mod 4 = 3); + Assert(9 * 2 = 18); + Assert(9 div 4 = 2); + Assert((-9) div 4 = -3); + Assert(9 mod 4 = 1); + Assert((-9) mod 4 = 3); n := -9; y := 4; - ASSERT(n * y = -36); - ASSERT(n div y = -3); - ASSERT(n mod y = 3); + Assert(n * y = -36); + Assert(n div y = -3); + Assert(n mod y = 3); i := 1; j := 1; n := (IncReturnZero(i) + 3) div (IncReturnZero(j) + 2); - ASSERT(n = 1); - ASSERT(i = 2); - ASSERT(j = 2); + Assert(n = 1); + Assert(i = 2); + Assert(j = 2); n := IncReturnZero(i) mod (IncReturnZero(j) + 1); - ASSERT(i = 3); - ASSERT(j = 3); + Assert(i = 3); + Assert(j = 3); (*reals*) - ASSERT(9.0 * 2.0 >= 18.0 - eps); - ASSERT(9.0 * 2.0 <= 18.0 + eps); - ASSERT(9.0 / 2.0 >= 4.5 - eps); - ASSERT(9.0 / 2.0 <= 4.5 + eps); + Assert(9.0 * 2.0 >= 18.0 - eps); + Assert(9.0 * 2.0 <= 18.0 + eps); + Assert(9.0 / 2.0 >= 4.5 - eps); + Assert(9.0 / 2.0 <= 4.5 + eps); x := 9.0; - ASSERT(x * 2.0 >= 18.0 - eps); - ASSERT(x * 2.0 <= 18.0 + eps); - ASSERT(x / 2.0 >= 4.5 - eps); - ASSERT(x / 2.0 <= 4.5 + eps); + Assert(x * 2.0 >= 18.0 - eps); + Assert(x * 2.0 <= 18.0 + eps); + Assert(x / 2.0 >= 4.5 - eps); + Assert(x / 2.0 <= 4.5 + eps); (*bytes*) y := 9; - ASSERT(y * 2 = 18); - (*ASSERT(y div 4 = 2); - ASSERT(y mod 4 = 1);*) + Assert(y * 2 = 18); + (*Assert(y div 4 = 2); + Assert(y mod 4 = 1);*) (*sets*) - ASSERT({0, 1} * {1, 2} = {1}); - ASSERT({0, 1} / {1, 2} = {0, 2}); + Assert({0, 1} * {1, 2} = {1}); + Assert({0, 1} / {1, 2} = {0, 2}); A := {0, 1}; - ASSERT(A * {1, 2} = {1}); - ASSERT(A / {1, 2} = {0, 2}) + Assert(A * {1, 2} = {1}); + Assert(A / {1, 2} = {0, 2}) end TestMultiplicativeOperations; @@ -395,82 +395,82 @@ Out.Integer(ORD({1, 2, a, 5, b, 8} = {1, 2, a..b, 8}), 0); Out.Ln; x: Byte; s: Set; begin - ASSERT(ABS(-1) = 1); - ASSERT(ABS(0) = 0); - ASSERT(ABS(1) = 1); - ASSERT(ABS(-1.0) = 1.0); - ASSERT(ABS(0.0) = 0.0); - ASSERT(ABS(1.0) = 1.0); + Assert(ABS(-1) = 1); + Assert(ABS(0) = 0); + Assert(ABS(1) = 1); + Assert(ABS(-1.0) = 1.0); + Assert(ABS(0.0) = 0.0); + Assert(ABS(1.0) = 1.0); i := 0; j := ABS(IncReturnZero(i) - 1); - ASSERT(j = 1); - ASSERT(i = 1); + Assert(j = 1); + Assert(i = 1); a := ""; - ASSERT(LEN(a) = 10); + Assert(LEN(a) = 10); - ASSERT(LSL(0, 0) = 0); - ASSERT(LSL(0, 1) = 0); - ASSERT(LSL(1, 0) = 1); - ASSERT(LSL(1, 1) = 2); + Assert(LSL(0, 0) = 0); + Assert(LSL(0, 1) = 0); + Assert(LSL(1, 0) = 1); + Assert(LSL(1, 1) = 2); - ASSERT(ASR(0, 0) = 0); - ASSERT(ASR(0, 1) = 0); - ASSERT(ASR(1, 0) = 1); - ASSERT(ASR(1, 1) = 0); + Assert(ASR(0, 0) = 0); + Assert(ASR(0, 1) = 0); + Assert(ASR(1, 0) = 1); + Assert(ASR(1, 1) = 0); - ASSERT(ROR(0, 1) = 0); - ASSERT(ROR(2, 1) = 1); + Assert(ROR(0, 1) = 0); + Assert(ROR(2, 1) = 1); i := 0; j := 0; k := ROR(IncReturnZero(i) + 2, IncReturnZero(j) + 1); - ASSERT(k = 1); - ASSERT(i = 1); - ASSERT(j = 1); + Assert(k = 1); + Assert(i = 1); + Assert(j = 1); - ASSERT(FLOOR(-1.5) = -2); - ASSERT(FLOOR(0.0) = 0); - ASSERT(FLOOR(1.5) = 1); + Assert(FLOOR(-1.5) = -2); + Assert(FLOOR(0.0) = 0); + Assert(FLOOR(1.5) = 1); i := 0; j := FLOOR(FLT(IncReturnZero(i)) + 1.5); - ASSERT(j = 1); - ASSERT(i = 1); + Assert(j = 1); + Assert(i = 1); - ASSERT(FLT(-1) = -1.0); - ASSERT(FLT(0) = 0.0); - ASSERT(FLT(1) = 1.0); + Assert(FLT(-1) = -1.0); + Assert(FLT(0) = 0.0); + Assert(FLT(1) = 1.0); - ASSERT(ORD(0X) = 0); + Assert(ORD(0X) = 0); ch := 0X; - ASSERT(ORD(ch) = 0); - ASSERT(ORD("A") = 41H); + Assert(ORD(ch) = 0); + Assert(ORD("A") = 41H); ch := "A"; - ASSERT(ORD(ch) = 41H); - ASSERT(ORD(0FFX) = 0FFH); + Assert(ORD(ch) = 41H); + Assert(ORD(0FFX) = 0FFH); ch := 0FFX; - ASSERT(ORD(ch) = 0FFH); + Assert(ORD(ch) = 0FFH); - ASSERT(ORD(false) = 0); + Assert(ORD(false) = 0); b := false; - ASSERT(ORD(b) = 0); - ASSERT(ORD(true) = 1); + Assert(ORD(b) = 0); + Assert(ORD(true) = 1); b := true; - ASSERT(ORD(b) = 1); + Assert(ORD(b) = 1); - ASSERT(ORD({}) = 0); + Assert(ORD({}) = 0); s := {}; - ASSERT(ORD(s) = 0); - ASSERT(ORD({8}) = 256); + Assert(ORD(s) = 0); + Assert(ORD({8}) = 256); s := {8}; - ASSERT(ORD(s) = 256); + Assert(ORD(s) = 256); - ASSERT(CHR(0) = 0X); - ASSERT(CHR(1) = 1X); - ASSERT(CHR(7FH) = 7FX); + Assert(CHR(0) = 0X); + Assert(CHR(1) = 1X); + Assert(CHR(7FH) = 7FX); ch := 7FX; - ASSERT(CHR(7FH) = ch); + Assert(CHR(7FH) = ch); x := 1; - ASSERT(CHR(x) = 1X); + Assert(CHR(x) = 1X); i := absConst; i := lslConst; diff --git a/tests/obnc/passing/T5Statements.obn b/tests/obnc/passing/T5Statements.obn index db6d924..3b89f44 100644 --- a/tests/obnc/passing/T5Statements.obn +++ b/tests/obnc/passing/T5Statements.obn @@ -52,30 +52,30 @@ module T5Statements; b := true; b1 := false; b := b1; - ASSERT(b = b1); + Assert(b = b1); ch := "a"; ch1 := 22X; ch := ch1; - ASSERT(ch = ch1); + Assert(ch = ch1); n := 0; n1 := -1; n := n1; - ASSERT(n = n1); + Assert(n = n1); x := 0.0; x1 := -1.0; x := x1; - ASSERT(x = x1); + Assert(x = x1); y := 0; y1 := 255; y := y1; - ASSERT(y = y1); + Assert(y = y1); n := 0; y := n; - ASSERT(y = n); + Assert(y = n); A := {}; A1 := {0, 1}; A := A1; - ASSERT(A = A1); + Assert(A = A1); end TestBasicAssignments; @@ -93,38 +93,38 @@ module T5Statements; var t: array 128 of Char; begin t := s; - ASSERT(t = s) + Assert(t = s) end AssignOpenArray; procedure AssignMultiDimOpenArray(s: array of array of String); var t: array 2 of String; begin t := s[0]; - ASSERT(t[0] = s[0, 0]); - ASSERT(t[1] = s[0, 1]) + Assert(t[0] = s[0, 0]); + Assert(t[1] = s[0, 1]) end AssignMultiDimOpenArray; begin str := "testing, testing..."; str1 := "more testing..."; str := str1; - ASSERT(str = str1); + Assert(str = str1); AssignString(str); - ASSERT(str = "hello"); + Assert(str = "hello"); AssignOpenArray("hello"); strs[0] := "foo"; - ASSERT(strs[0] = "foo"); + Assert(strs[0] = "foo"); strs[1] := "bar"; - ASSERT(strs[1] = "bar"); + Assert(strs[1] = "bar"); strs[1] := strs[0]; - ASSERT(strs[1] = "foo"); + Assert(strs[1] = "foo"); strs[0] := "foo"; strs[1] := "bar"; strs1 := strs; - ASSERT(strs1[0] = "foo"); - ASSERT(strs1[1] = "bar"); + Assert(strs1[0] = "foo"); + Assert(strs1[1] = "bar"); AssignMultiDimOpenArray(strs2) end TestArrayAssignments; @@ -140,7 +140,7 @@ module T5Statements; procedure P(var s: ShapeDesc); begin - ASSERT(s is CircleDesc); + Assert(s is CircleDesc); s(CircleDesc) := s(CircleDesc); s(CircleDesc).r := 1.0 end P; @@ -153,17 +153,17 @@ module T5Statements; begin foo.i := 37; bar := foo; - ASSERT(bar.i = 37); + Assert(bar.i = 37); s.x := 0.0; s.y := 0.0; r.x := 0.0; P(c); - ASSERT(ABS(c.r - 1.0) < eps); + Assert(ABS(c.r - 1.0) < eps); r.x := 1.0; s := r; - ASSERT(s.x = r.x); + Assert(s.x = r.x); P(a[9]); @@ -178,14 +178,14 @@ module T5Statements; r: pointer to RectangleDesc; r1: pointer to RectangleDesc; begin - NEW(x); + New(x); y := x; - ASSERT(y is Rectangle); - NEW(r); + Assert(y is Rectangle); + New(r); s := r; - ASSERT(s is RectangleDesc); + Assert(s is RectangleDesc); r1 := r; - ASSERT(r1 is RectangleDesc) + Assert(r1 is RectangleDesc) end TestPointerAssignments; @@ -274,7 +274,7 @@ module T5Statements; procedure P7(var t: T0); begin - ASSERT(t is T1) + Assert(t is T1) end P7; begin @@ -287,7 +287,7 @@ module T5Statements; P6("test"); s := "test"; P6(s); - NEW(p1); + New(p1); p0 := p1; P7(p0^) end TestProcedureCalls; @@ -311,60 +311,60 @@ module T5Statements; begin n := 0; INC(n); - ASSERT(n = 1); + Assert(n = 1); n := 0; INC(n, 10); - ASSERT(n = 10); + Assert(n = 10); n := 0; DEC(n); - ASSERT(n = -1); + Assert(n = -1); n := 0; DEC(n, 10); - ASSERT(n = -10); + Assert(n = -10); A := {}; INCL(A, 0); - ASSERT(A = {0}); + Assert(A = {0}); A := {0}; EXCL(A, 0); - ASSERT(A = {}); + Assert(A = {}); - NEW(v); - ASSERT(v # nil); + New(v); + Assert(v # nil); v.f := 1; - ASSERT(v.f = 1); + Assert(v.f = 1); x := 1.0; PACK(x, 2); - ASSERT(x >= 4.0 - eps); - ASSERT(x <= 4.0 + eps); + Assert(x >= 4.0 - eps); + Assert(x <= 4.0 + eps); a[0] := 1.0; i := 0; j := 0; PACK(a[IncReturnZero(i)], IncReturnZero(j) + 2); - ASSERT(a[0] >= 4.0 - eps); - ASSERT(a[0] <= 4.0 + eps); - ASSERT(i = 1); - ASSERT(j = 1); + Assert(a[0] >= 4.0 - eps); + Assert(a[0] <= 4.0 + eps); + Assert(i = 1); + Assert(j = 1); x := 4.0; UNPK(x, n); - ASSERT(x >= 1.0); - ASSERT(x < 2.0); - ASSERT(n = 2); + Assert(x >= 1.0); + Assert(x < 2.0); + Assert(n = 2); a[0] := 4.0; i := 0; j := 0; UNPK(a[IncReturnZero(i)], b[IncReturnZero(j)]); - ASSERT(a[0] >= 1.0); - ASSERT(a[0] < 2.0); - ASSERT(b[0] = 2); - ASSERT(i = 1); - ASSERT(j = 1) + Assert(a[0] >= 1.0); + Assert(a[0] < 2.0); + Assert(b[0] = 2); + Assert(i = 1); + Assert(j = 1) end TestPredeclaredProperProcedures; @@ -375,14 +375,14 @@ module T5Statements; if n = 0 then n := 1 end; - ASSERT(n = 1); + Assert(n = 1); n := 1; if n = 0 then n := 1 else n := 2 end; - ASSERT(n = 2); + Assert(n = 2); n := 2; if n = 0 then n := 1 @@ -391,7 +391,7 @@ module T5Statements; else n := 3 end; - ASSERT(n = 3) + Assert(n = 3) end TestIfStatements; @@ -432,7 +432,7 @@ module T5Statements; | 10, 12 .. 20: n := 0 end; - ASSERT(n = 0); + Assert(n = 0); ch := "u"; case ch of | 0X: @@ -442,8 +442,8 @@ module T5Statements; | "l", "m" .. "z": ch := 0X end; - ASSERT(ch = 0X); - NEW(rp); + Assert(ch = 0X); + New(rp); sp := rp; case sp of (*Shape: @@ -454,10 +454,10 @@ module T5Statements; | Circle: sp.r := 1.0 end; - ASSERT(sp(Rectangle).w = 1.0); - ASSERT(sp(Rectangle).h = 2.0); + Assert(sp(Rectangle).w = 1.0); + Assert(sp(Rectangle).h = 2.0); P(c); - ASSERT(c.r = 1.0); + Assert(c.r = 1.0); end TestCaseStatements; @@ -470,7 +470,7 @@ module T5Statements; n := n + 1; i := i + 1 end; - ASSERT(n = 10); + Assert(n = 10); n := 4; n1 := 6; while n > n1 do @@ -478,8 +478,8 @@ module T5Statements; elsif n1 > n do n1 := n1 - n end; - ASSERT(n = 2); - ASSERT(n1 = 2); + Assert(n = 2); + Assert(n1 = 2); n := 5; n1 := 6; while n > n1 do @@ -487,8 +487,8 @@ module T5Statements; elsif n1 > n do n1 := n1 - n end; - ASSERT(n = 1); - ASSERT(n1 = 1); + Assert(n = 1); + Assert(n1 = 1); end TestWhileStatements; @@ -501,7 +501,7 @@ module T5Statements; INC(n); INC(i) until i = 11; - ASSERT(n = 10); + Assert(n = 10); end TestRepeatStatements; @@ -520,22 +520,22 @@ module T5Statements; for i := 1 to 10 do n := n + 1 end; - ASSERT(n = 10); + Assert(n = 10); n := 0; for i := 1 to 20 by 2 do n := n + 1 end; - ASSERT(n = 10); + Assert(n = 10); n := 0; for i := 20 to 1 by -2 do n := n + 1 end; - ASSERT(n = 10); + Assert(n = 10); globalInteger := 0; for i := 0 to IncGlobalIntegerReturnOne() do (*make sure the limit function is called three times*) x := x + 1.0 end; - ASSERT(globalInteger = 3) + Assert(globalInteger = 3) end TestForStatements; begin diff --git a/tests/obnc/passing/T5SystemStatements.obn b/tests/obnc/passing/T5SystemStatements.obn index 32c8d2a..847eccc 100644 --- a/tests/obnc/passing/T5SystemStatements.obn +++ b/tests/obnc/passing/T5SystemStatements.obn @@ -33,60 +33,60 @@ module T5SystemStatements; a, a1: Array; a2: array SYSTEM.SIZE(Array) + 1 of Int; begin - ASSERT(SYSTEM.SIZE(Int) = SYSTEM.SIZE(Pointer)); + Assert(SYSTEM.SIZE(Int) = SYSTEM.SIZE(Pointer)); (*ADR, PUT, GET*) b := true; SYSTEM.GET(SYSTEM.ADR(b), b1); - ASSERT(b1 = b); + Assert(b1 = b); SYSTEM.PUT(SYSTEM.ADR(b), false); - ASSERT(~b); + Assert(~b); ch := "a"; SYSTEM.GET(SYSTEM.ADR(ch), ch1); - ASSERT(ch1 = ch); + Assert(ch1 = ch); SYSTEM.PUT(SYSTEM.ADR(ch), "b"); - ASSERT(ch = "b"); + Assert(ch = "b"); SYSTEM.PUT(SYSTEM.ADR(ch), ch1); - ASSERT(ch = ch1); + Assert(ch = ch1); i := 1; SYSTEM.GET(SYSTEM.ADR(i), i1); - ASSERT(i1 = i); + Assert(i1 = i); SYSTEM.PUT(SYSTEM.ADR(i), 0); - ASSERT(i = 0); + Assert(i = 0); r := 1.0; SYSTEM.GET(SYSTEM.ADR(r), r1); - ASSERT(r1 = r); + Assert(r1 = r); SYSTEM.PUT(SYSTEM.ADR(r), 0.0); - ASSERT(r = 0.0); + Assert(r = 0.0); x := 1; SYSTEM.GET(SYSTEM.ADR(x), x1); - ASSERT(x1 = x); + Assert(x1 = x); SYSTEM.PUT(SYSTEM.ADR(x), 0); - ASSERT(x = 0); + Assert(x = 0); s := {0}; SYSTEM.GET(SYSTEM.ADR(s), s1); - ASSERT(s1 = s); + Assert(s1 = s); SYSTEM.PUT(SYSTEM.ADR(s), {}); - ASSERT(s = {}); + Assert(s = {}); (*BIT*) i := 1; - ASSERT(SYSTEM.BIT(SYSTEM.ADR(i), 0)); + Assert(SYSTEM.BIT(SYSTEM.ADR(i), 0)); i := 2; - ASSERT(~SYSTEM.BIT(SYSTEM.ADR(i), 0)); - ASSERT(SYSTEM.BIT(SYSTEM.ADR(i), 1)); + Assert(~SYSTEM.BIT(SYSTEM.ADR(i), 0)); + Assert(SYSTEM.BIT(SYSTEM.ADR(i), 1)); (*COPY*) a[0] := 1; a[1] := 2; SYSTEM.COPY(SYSTEM.ADR(a), SYSTEM.ADR(a1), 2); - ASSERT(a1[0] = 1); - ASSERT(a1[1] = 2); + Assert(a1[0] = 1); + Assert(a1[1] = 2); (*VAL*) xs[0] := 1; xs[1] := 2; SYSTEM.PUT(SYSTEM.ADR(xs), SYSTEM.VAL(Byte, 37)); - ASSERT(xs[0] = 37); - ASSERT(xs[1] = 2); + Assert(xs[0] = 37); + Assert(xs[1] = 2); (*silence "unused" compiler notifications*) x := byte; diff --git a/tests/obnc/passing/T6ProcedureDeclarations.obn b/tests/obnc/passing/T6ProcedureDeclarations.obn index f6c113a..268d0fd 100644 --- a/tests/obnc/passing/T6ProcedureDeclarations.obn +++ b/tests/obnc/passing/T6ProcedureDeclarations.obn @@ -51,8 +51,8 @@ module T6ProcedureDeclarations; procedure P3(A: Matrix); begin - ASSERT(LEN(A) = 10); - ASSERT(LEN(A[0]) = 20) + Assert(LEN(A) = 10); + Assert(LEN(A[0]) = 20) end P3; procedure P4(A: array of Row); @@ -60,7 +60,7 @@ module T6ProcedureDeclarations; begin P(0); - NEW(ptr); + New(ptr); P1(ptr); P2(proc); P3(A); @@ -75,14 +75,14 @@ module T6ProcedureDeclarations; procedure Alloc(var p: Ptr); begin - NEW(p); + New(p); p.f := 1 end Alloc; procedure P(var A: Matrix); begin - ASSERT(LEN(A) = 10); - ASSERT(LEN(A[0]) = 20) + Assert(LEN(A) = 10); + Assert(LEN(A[0]) = 20) end P; procedure Q(var x: T0); @@ -96,7 +96,7 @@ module T6ProcedureDeclarations; begin Alloc(x); - ASSERT(x.f = 1); + Assert(x.f = 1); P(A); y.f := 0; Q(y) @@ -114,7 +114,7 @@ module T6ProcedureDeclarations; var i: Int; begin for i := 0 to LEN(a) - 1 do - ASSERT(a[i] = i + 1) + Assert(a[i] = i + 1) end end P; @@ -127,7 +127,7 @@ module T6ProcedureDeclarations; c := 0; for i := 0 to LEN(M) - 1 do for j := 0 to LEN(M[0]) - 1 do - ASSERT(M[i, j] = c); + Assert(M[i, j] = c); INC(c) end end; @@ -138,7 +138,7 @@ module T6ProcedureDeclarations; begin c := LEN(row); for j := 0 to LEN(row) - 1 do - ASSERT(row[j] = c); + Assert(row[j] = c); INC(c) end end Inner1; @@ -156,7 +156,7 @@ module T6ProcedureDeclarations; for i := 0 to LEN(T) - 1 do for j := 0 to LEN(T[0]) - 1 do for k := 0 to LEN(T[0, 0]) - 1 do - ASSERT(T[i, j, k] = c); + Assert(T[i, j, k] = c); INC(c) end end @@ -199,7 +199,7 @@ module T6ProcedureDeclarations; type PtrExt = pointer to record (Ptr) end; var y: PtrExt; begin - NEW(y) + New(y) return y end P; @@ -229,7 +229,7 @@ module T6ProcedureDeclarations; begin s := Sum(10); - ASSERT(s = 55) + Assert(s = 55) end TestLocalProcedures; diff --git a/tests/obnc/passing/T7Modules.obn b/tests/obnc/passing/T7Modules.obn index 09b9526..9fc125f 100644 --- a/tests/obnc/passing/T7Modules.obn +++ b/tests/obnc/passing/T7Modules.obn @@ -44,41 +44,41 @@ module T7Modules; p1: ListExt; begin - ASSERT(A.boolConst); - ASSERT(A.charConst = CHR(22H)); - ASSERT(A.intConst = 1); - ASSERT(A.realConst = 2.3); - ASSERT(A.strConst = "hello there"); - ASSERT(A.nul = 0X); - ASSERT(A.lf = 0AX); - ASSERT(A.charMax = 0FFX); - ASSERT(A.setConst = {0, 2, 3, 5}); + Assert(A.boolConst); + Assert(A.charConst = CHR(22H)); + Assert(A.intConst = 1); + Assert(A.realConst = 2.3); + Assert(A.strConst = "hello there"); + Assert(A.nul = 0X); + Assert(A.lf = 0AX); + Assert(A.charMax = 0FFX); + Assert(A.setConst = {0, 2, 3, 5}); - ASSERT(A.boolVar = A.boolConst); - ASSERT(A.charVar = A.charConst); - ASSERT(A.intVar = A.intConst); - ASSERT(ABS(A.realVar - A.realConst) < 1.0E-6); - ASSERT(A.strVar = A.strConst); - ASSERT(A.setVar = A.setConst); - ASSERT(A.recVar.f = 1); + Assert(A.boolVar = A.boolConst); + Assert(A.charVar = A.charConst); + Assert(A.intVar = A.intConst); + Assert(ABS(A.realVar - A.realConst) < 1.0E-6); + Assert(A.strVar = A.strConst); + Assert(A.setVar = A.setConst); + Assert(A.recVar.f = 1); intVar := A.intVar; A.procVar(A.strVar); - NEW(y.f); + New(y.f); y.f.f := 1; w := x; A.Q(x); - NEW(list); + New(list); A.R(matrix); x0 := x1; A.S(t); A.S1(p); - ASSERT(D.b); - ASSERT(E.b); - ASSERT(T7Modules.b); - ASSERT(lib1M.b); - ASSERT(OBNC.b); + Assert(D.b); + Assert(E.b); + Assert(T7Modules.b); + Assert(lib1M.b); + Assert(OBNC.b); p1 := nil end T7Modules. -- 2.52.0