Added possibilities to use IEnumerable<T> and ICollection<T> to create an array.
Closes: thorsten/ExaArray#1 thorsten/ExaArray#3 thorsten/ExaArray#4
This commit is contained in:
1 parent
d2ae4895c4
commit
0968edab80
3 files changed
+233
No files matched your search
@@ -1,4 +1,5 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Diagnostics;
|
||||
using System.Diagnostics.CodeAnalysis;
|
||||
using System.Linq;
|
||||
@@ -549,6 +550,111 @@ namespace ExaArrayTests
|
||||
Assert.That(next3.Length, Is.EqualTo(exPerf.Length));
|
||||
Assert.That(next4.Length, Is.EqualTo(exPerf.Length));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category("normal")]
|
||||
[Category("cover")]
|
||||
public void CreateFromSequence001()
|
||||
{
|
||||
var list = new List<int>
|
||||
{
|
||||
5,
|
||||
7,
|
||||
8,
|
||||
10,
|
||||
16,
|
||||
};
|
||||
|
||||
var exPerf1 = list.AsExaArray();
|
||||
Assert.That(exPerf1.OptimizationStrategy, Is.EqualTo(Strategy.MAX_PERFORMANCE));
|
||||
Assert.That(exPerf1.Length, Is.EqualTo(list.Count));
|
||||
Assert.That(exPerf1.Items(), Is.EquivalentTo(list));
|
||||
|
||||
var exPerf2 = list.AsExaArray(Strategy.MAX_ELEMENTS);
|
||||
Assert.That(exPerf2.OptimizationStrategy, Is.EqualTo(Strategy.MAX_ELEMENTS));
|
||||
Assert.That(exPerf2.Length, Is.EqualTo(list.Count));
|
||||
Assert.That(exPerf2.Items(), Is.EquivalentTo(list));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category("normal")]
|
||||
[Category("cover")]
|
||||
public void CreateFromSequence002()
|
||||
{
|
||||
var array = new int[]
|
||||
{
|
||||
5,
|
||||
7,
|
||||
8,
|
||||
10,
|
||||
16,
|
||||
};
|
||||
|
||||
var exPerf1 = array.AsExaArray();
|
||||
Assert.That(exPerf1.OptimizationStrategy, Is.EqualTo(Strategy.MAX_PERFORMANCE));
|
||||
Assert.That(exPerf1.Length, Is.EqualTo(array.Length));
|
||||
Assert.That(exPerf1.Items(), Is.EquivalentTo(array));
|
||||
|
||||
var exPerf2 = array.AsExaArray(Strategy.MAX_ELEMENTS);
|
||||
Assert.That(exPerf2.OptimizationStrategy, Is.EqualTo(Strategy.MAX_ELEMENTS));
|
||||
Assert.That(exPerf2.Length, Is.EqualTo(array.Length));
|
||||
Assert.That(exPerf2.Items(), Is.EquivalentTo(array));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category("normal")]
|
||||
[Category("cover")]
|
||||
public void CreateFromSequence003()
|
||||
{
|
||||
var list = new List<int>
|
||||
{
|
||||
5,
|
||||
7,
|
||||
8,
|
||||
10,
|
||||
16,
|
||||
};
|
||||
|
||||
var exPerf1 = list.AsEnumerable().AsExaArray();
|
||||
Assert.That(exPerf1.OptimizationStrategy, Is.EqualTo(Strategy.MAX_PERFORMANCE));
|
||||
Assert.That(exPerf1.Length, Is.EqualTo(list.Count));
|
||||
Assert.That(exPerf1.Items(), Is.EquivalentTo(list));
|
||||
|
||||
var exPerf2 = list.AsEnumerable().AsExaArray(Strategy.MAX_ELEMENTS);
|
||||
Assert.That(exPerf2.OptimizationStrategy, Is.EqualTo(Strategy.MAX_ELEMENTS));
|
||||
Assert.That(exPerf2.Length, Is.EqualTo(list.Count));
|
||||
Assert.That(exPerf2.Items(), Is.EquivalentTo(list));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category("normal")]
|
||||
[Category("cover")]
|
||||
public void CreateFromSequence004()
|
||||
{
|
||||
var list = new List<int>
|
||||
{
|
||||
5,
|
||||
7,
|
||||
8,
|
||||
10,
|
||||
16,
|
||||
};
|
||||
|
||||
var exPerf1 = list.AsEnumerable().AsExaArray((ulong) list.Count);
|
||||
Assert.That(exPerf1.OptimizationStrategy, Is.EqualTo(Strategy.MAX_PERFORMANCE));
|
||||
Assert.That(exPerf1.Length, Is.EqualTo(list.Count));
|
||||
Assert.That(exPerf1.Items(), Is.EquivalentTo(list));
|
||||
|
||||
var exPerf2 = list.AsEnumerable().AsExaArray((ulong) list.Count, Strategy.MAX_ELEMENTS);
|
||||
Assert.That(exPerf2.OptimizationStrategy, Is.EqualTo(Strategy.MAX_ELEMENTS));
|
||||
Assert.That(exPerf2.Length, Is.EqualTo(list.Count));
|
||||
Assert.That(exPerf2.Items(), Is.EquivalentTo(list));
|
||||
|
||||
var exPerf3 = list.AsEnumerable().AsExaArray(3);
|
||||
Assert.That(exPerf3.OptimizationStrategy, Is.EqualTo(Strategy.MAX_PERFORMANCE));
|
||||
Assert.That(exPerf3.Length, Is.EqualTo(3));
|
||||
Assert.That(exPerf3.Items(), Is.EquivalentTo(new int[] {5,7,8}));
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Category("intensive")]
|
||||
|
||||
Reference in new issue
Block a user