From 65d960a6e68a484d1ced08d93ca1e0f13be5d6d1 Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Sun, 16 Aug 2020 08:31:26 -0700 Subject: [PATCH] More tests --- IDEHelper/Tests/LibA/src/LibA0.bf | 28 ++++++++++++++++++++++++ IDEHelper/Tests/src/Generics.bf | 35 ++++++++++++++++++++++++++++++ IDEHelper/Tests/src/SizedArrays.bf | 15 +++++++++++++ IDEHelper/Tests/src/Tuples.bf | 12 ++++++++++ 4 files changed, 90 insertions(+) diff --git a/IDEHelper/Tests/LibA/src/LibA0.bf b/IDEHelper/Tests/LibA/src/LibA0.bf index 88a73b71..ce11ddb5 100644 --- a/IDEHelper/Tests/LibA/src/LibA0.bf +++ b/IDEHelper/Tests/LibA/src/LibA0.bf @@ -58,6 +58,34 @@ namespace LibA return Handle(val); } } + + class LibA1 + { + + } + + class LibA2 + { + public static void DoDispose(mut T val) where T : IDisposable + { + val.Dispose(); + } + + public static bool DoDispose2(mut T val) where T : var + { + return + [IgnoreErrors(true)] + { + val.Dispose(); + true + }; + } + + public static bool CheckEq(T lhs, T rhs) + { + return lhs == rhs; + } + } } class LibClassA diff --git a/IDEHelper/Tests/src/Generics.bf b/IDEHelper/Tests/src/Generics.bf index baee9cbc..def1d793 100644 --- a/IDEHelper/Tests/src/Generics.bf +++ b/IDEHelper/Tests/src/Generics.bf @@ -3,6 +3,22 @@ using System; using System.Collections; +namespace LibA +{ + extension LibA1 : IDisposable + { + public void Dispose() + { + + } + + public static int operator<=>(Self lhs, Self rhs) + { + return 0; + } + } +} + namespace Tests { class Generics @@ -63,6 +79,14 @@ namespace Tests { } + class ClassD + { + public static int operator<=>(Self lhs, Self rhs) + { + return 0; + } + } + static void DoDispose(mut T val) where T : IDisposable { val.Dispose(); @@ -172,6 +196,17 @@ namespace Tests ClassC cc = scope .(); Test.Assert(ClassC.mInstance == cc); + + LibA.LibA1 la1 = scope .(); + LibA.LibA1 la1b = scope .(); + LibA.LibA2.DoDispose(la1); + Test.Assert(!LibA.LibA2.DoDispose2(la1)); + Test.Assert(la1 == la1b); + Test.Assert(!LibA.LibA2.CheckEq(la1, la1b)); + + ClassD cd = scope .(); + ClassD cd2 = scope .(); + Test.Assert(LibA.LibA2.CheckEq(cd, cd2)); } } diff --git a/IDEHelper/Tests/src/SizedArrays.bf b/IDEHelper/Tests/src/SizedArrays.bf index c84d0908..2fd321af 100644 --- a/IDEHelper/Tests/src/SizedArrays.bf +++ b/IDEHelper/Tests/src/SizedArrays.bf @@ -10,6 +10,14 @@ namespace Tests public int8 mB; } + class ClassA + { + public static int operator<=>(Self lhs, Self rhs) + { + return 0; + } + } + public static int[8] iArr = .(123, 234, 345, ); public static int[?] iArr2 = .(12, 23, 34); @@ -37,6 +45,13 @@ namespace Tests var val4 = int[?](11, 12); Test.Assert(val4[0] == 11); + + ClassA ca0 = scope .(); + ClassA ca1 = scope .(); + Test.Assert(ClassA[2](ca0, ca0) == ClassA[2](ca1, ca1)); + ClassA[2] caArr0 = .(ca0, ca0); + ClassA[2] caArr1 = .(ca1, ca1); + Test.Assert(caArr0 == caArr1); } [Test] diff --git a/IDEHelper/Tests/src/Tuples.bf b/IDEHelper/Tests/src/Tuples.bf index fbee6169..ff0aef42 100644 --- a/IDEHelper/Tests/src/Tuples.bf +++ b/IDEHelper/Tests/src/Tuples.bf @@ -6,6 +6,14 @@ namespace Tests { class Tuples { + class ClassA + { + public static int operator<=>(Self lhs, Self rhs) + { + return 0; + } + } + public static void Add(ref (int32, float) val) { val.0 += 100; @@ -30,6 +38,10 @@ namespace Tests Add(ref tVal1); Test.Assert(tVal1 == (a: 102, b: 203)); + + ClassA ca0 = scope .(); + ClassA ca1 = scope .(); + Test.Assert((ca0, ca0) == (ca1, ca1)); } class ValClass