Added tests

This commit is contained in:
Thorsten Sommer 2020-07-28 19:35:55 +02:00
parent ddcec0fec4
commit e7319e4957
2 changed files with 86 additions and 1 deletions

View File

@ -1,7 +1,88 @@
using System;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading.Tasks;
using Exa;
using NUnit.Framework;
namespace ExaArrayTests namespace ExaArrayTests
{ {
public class ExaArray1DTests public class ExaArray1DTests
{ {
[ExcludeFromCodeCoverage]
public class InfinityArrayTests
{
[Test]
public void CreatingNormalSize01()
{
var exaA = new ExaArray1D<byte>();
Assert.That(exaA.Length, Is.EqualTo(0));
Assert.Throws<IndexOutOfRangeException>(() =>
{
var n = exaA[0];
});
Assert.That(exaA.Items(), Is.Empty);
exaA.Extend();
Assert.That(exaA.Length, Is.EqualTo(1));
Assert.That(exaA.Items(), Is.EquivalentTo(new[] {0x00}));
Assert.That(exaA[0], Is.EqualTo(0));
exaA[0] = 0xFF;
Assert.That(exaA.Length, Is.EqualTo(1));
Assert.That(exaA.Items(), Is.EquivalentTo(new[] {0xFF}));
Assert.That(exaA[0], Is.EqualTo(0xFF));
}
[Test]
public void CreatingNormalSize02()
{
var exaA = new ExaArray1D<int>();
exaA.Extend(1_000_000);
Assert.That(exaA.Length, Is.EqualTo(1_000_000));
for (ulong n = 0; n < 1_000_000; n++)
{
exaA[n] = (int) (n * n);
}
Assert.That(exaA.Items().Count(), Is.EqualTo(1_000_000));
exaA.Extend();
Assert.That(exaA.Length, Is.EqualTo(1_000_001));
}
[Test]
public void CountingHugeSize01()
{
var exaA = new ExaArray1D<byte>();
exaA.Extend(5_000_000_000);
Assert.That(exaA.Length, Is.EqualTo(5_000_000_000));
Assert.Throws<OverflowException>(() =>
{
// Cannot work because linq uses int:
var n = exaA.Items().Count();
});
}
[Test]
public void Adding5Billion01()
{
ulong sum1 = 0;
var exaA = new ExaArray1D<byte>();
exaA.Extend(5_000_000_000);
Assert.That(exaA.Length, Is.EqualTo(5_000_000_000));
for (ulong n = 0; n < 5_000_000_000; n++)
{
exaA[n] = 1;
sum1 += 1;
}
var sum2 = exaA.Items().Aggregate<byte, ulong>(0, (current, item) => current + item);
Assert.That(sum1, Is.EqualTo(sum2));
}
}
} }
} }

View File

@ -12,4 +12,8 @@
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.4.0" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ExaArray\ExaArray.csproj" />
</ItemGroup>
</Project> </Project>