Skip to content

Commit

Permalink
Unit tests for new Seq constructors
Browse files Browse the repository at this point in the history
  • Loading branch information
Paul Louth committed Oct 20, 2021
1 parent 6e9c4fd commit dd8db56
Show file tree
Hide file tree
Showing 4 changed files with 142 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ public Seq<A> ToSeq()
{
if(freed == 1) return Seq<A>.Empty;
var ndata = new A[data.Length];
Buffer.BlockCopy(data, start, ndata, start, count);
System.Array.Copy(data, start, ndata, start, count);
return new Seq<A>(new SeqStrict<A>(ndata, start, count, 0, 0));
}

Expand Down
3 changes: 1 addition & 2 deletions LanguageExt.Core/Prelude/Collections/Prelude_Collections.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1086,9 +1086,8 @@ public static Seq<A> Seq<A>(A a, A b, A c, A d, A e, A f, A g, A h, params A[] t
arr[9] = f;
arr[10] = g;
arr[11] = h;
return new Seq<A>(new SeqStrict<A>(arr, 4, 8, 0, 0));

Buffer.BlockCopy(tail, 0, arr, 12, tail.Length);
System.Array.Copy(tail, 0, arr, 12, tail.Length);
return new Seq<A>(new SeqStrict<A>(arr, 4, 8 + tail.Length, 0, 0));
}

Expand Down
6 changes: 3 additions & 3 deletions LanguageExt.Tests/CollectionToStringTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -63,21 +63,21 @@ public void LstLongToString()
[Fact]
public void SeqShortToString()
{
var items = Seq(zeroToFour);
var items = toSeq(zeroToFour);
Assert.True(items.ToString() == zeroToFourString);
}

[Fact]
public void SeqMedToString()
{
var items = Seq(zeroToFourtyNine);
var items = toSeq(zeroToFourtyNine);
Assert.True(items.ToString() == zeroToFourtyNineString);
}

[Fact]
public void SeqLongToString()
{
var items = Seq(zeroToFiftyNine);
var items = toSeq(zeroToFiftyNine);
Assert.True(items.ToString() == zeroToFiftyNineString);
}

Expand Down
137 changes: 137 additions & 0 deletions LanguageExt.Tests/SeqTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -418,5 +418,142 @@ public void SeqConcatTest()
.Concat(seq2)
.Concat(seq3));
}

[Fact]
public void CheckItems()
{
var xs = Seq<int>();
Assert.True(xs.Count == 0);

xs = Seq<int>(0);
Assert.True(xs.Count == 1);
Assert.True(xs[0] == 0);

xs = Seq<int>(0, 1);
Assert.True(xs.Count == 2);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);

xs = Seq<int>(0, 1, 2);
Assert.True(xs.Count == 3);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);

xs = Seq<int>(0, 1, 2, 3);
Assert.True(xs.Count == 4);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);

xs = Seq<int>(0, 1, 2, 3, 4);
Assert.True(xs.Count == 5);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);
Assert.True(xs[4] == 4);

xs = Seq<int>(0, 1, 2, 3, 4, 5);
Assert.True(xs.Count == 6);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);
Assert.True(xs[4] == 4);
Assert.True(xs[5] == 5);

xs = Seq<int>(0, 1, 2, 3, 4, 5, 6);
Assert.True(xs.Count == 7);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);
Assert.True(xs[4] == 4);
Assert.True(xs[5] == 5);
Assert.True(xs[6] == 6);

xs = Seq<int>(0, 1, 2, 3, 4, 5, 6, 7);
Assert.True(xs.Count == 8);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);
Assert.True(xs[4] == 4);
Assert.True(xs[5] == 5);
Assert.True(xs[6] == 6);
Assert.True(xs[7] == 7);

xs = Seq<int>(0, 1, 2, 3, 4, 5, 6, 7, 8);
Assert.True(xs.Count == 9);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);
Assert.True(xs[4] == 4);
Assert.True(xs[5] == 5);
Assert.True(xs[6] == 6);
Assert.True(xs[7] == 7);
Assert.True(xs[8] == 8);

xs = Seq<int>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
Assert.True(xs.Count == 10);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);
Assert.True(xs[4] == 4);
Assert.True(xs[5] == 5);
Assert.True(xs[6] == 6);
Assert.True(xs[7] == 7);
Assert.True(xs[8] == 8);
Assert.True(xs[9] == 9);

xs = Seq<int>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Assert.True(xs.Count == 11);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);
Assert.True(xs[4] == 4);
Assert.True(xs[5] == 5);
Assert.True(xs[6] == 6);
Assert.True(xs[7] == 7);
Assert.True(xs[8] == 8);
Assert.True(xs[9] == 9);
Assert.True(xs[10] == 10);

xs = Seq<int>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
Assert.True(xs.Count == 12);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);
Assert.True(xs[4] == 4);
Assert.True(xs[5] == 5);
Assert.True(xs[6] == 6);
Assert.True(xs[7] == 7);
Assert.True(xs[8] == 8);
Assert.True(xs[9] == 9);
Assert.True(xs[10] == 10);
Assert.True(xs[11] == 11);

xs = Seq<int>(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
Assert.True(xs.Count == 13);
Assert.True(xs[0] == 0);
Assert.True(xs[1] == 1);
Assert.True(xs[2] == 2);
Assert.True(xs[3] == 3);
Assert.True(xs[4] == 4);
Assert.True(xs[5] == 5);
Assert.True(xs[6] == 6);
Assert.True(xs[7] == 7);
Assert.True(xs[8] == 8);
Assert.True(xs[9] == 9);
Assert.True(xs[10] == 10);
Assert.True(xs[11] == 11);
Assert.True(xs[12] == 12);
}
}
}

0 comments on commit dd8db56

Please sign in to comment.