diff --git a/ExaArrayTests/ExaArray1DTests.cs b/ExaArrayTests/ExaArray1DTests.cs index 21cdd6a..4b27aee 100644 --- a/ExaArrayTests/ExaArray1DTests.cs +++ b/ExaArrayTests/ExaArray1DTests.cs @@ -85,6 +85,100 @@ namespace ExaArrayTests Assert.That(exaA.Length, Is.EqualTo(MAX)); } + [Test] + [Category("normal")] + [Category("cover")] + public void GetInvalidIndex01() + { + var exaPerf = new ExaArray1D(Strategy.MAX_PERFORMANCE); + exaPerf.Extend(2); + + Assert.Throws(() => + { + var t = exaPerf[ulong.MaxValue]; // Because index >= max + }); + + Assert.DoesNotThrow(() => + { + var t1 = exaPerf[0]; + var t2 = exaPerf[1]; + }); + + Assert.Throws(() => + { + var t = exaPerf[2]; // Because we don't allocate + }); + + exaPerf = null; + + + var exaElem = new ExaArray1D(Strategy.MAX_ELEMENTS); + exaElem.Extend(2); + + Assert.Throws(() => + { + var t = exaElem[ulong.MaxValue]; // Because index >= max + }); + + Assert.DoesNotThrow(() => + { + var t1 = exaElem[0]; + var t2 = exaElem[1]; + }); + + Assert.Throws(() => + { + var t = exaElem[2]; // Because we don't allocate + }); + } + + [Test] + [Category("normal")] + [Category("cover")] + public void SetInvalidIndex01() + { + var exaPerf = new ExaArray1D(Strategy.MAX_PERFORMANCE); + exaPerf.Extend(2); + + Assert.Throws(() => + { + exaPerf[ulong.MaxValue] = 0x00; // Because index >= max + }); + + Assert.DoesNotThrow(() => + { + exaPerf[0] = 0x01; + exaPerf[1] = 0x02; + }); + + Assert.Throws(() => + { + var t = exaPerf[2] = 0x03; // Because we don't allocate + }); + + exaPerf = null; + + + var exaElem = new ExaArray1D(Strategy.MAX_ELEMENTS); + exaElem.Extend(2); + + Assert.Throws(() => + { + exaElem[ulong.MaxValue] = 0x00; // Because index >= max + }); + + Assert.DoesNotThrow(() => + { + exaElem[0] = 0x01; + exaElem[1] = 0x02; + }); + + Assert.Throws(() => + { + exaElem[2] = 0x03; // Because we don't allocate + }); + } + [Test] [Category("normal")] public void CountingHugeSize01()