diff --git a/LanguageExt.Core/DataTypes/Immutable Collections/Seq/SeqLoan.cs b/LanguageExt.Core/DataTypes/Immutable Collections/Seq/SeqLoan.cs
index 6a07c8399..42c35cd56 100644
--- a/LanguageExt.Core/DataTypes/Immutable Collections/Seq/SeqLoan.cs
+++ b/LanguageExt.Core/DataTypes/Immutable Collections/Seq/SeqLoan.cs
@@ -114,7 +114,7 @@ public Seq ToSeq()
{
if(freed == 1) return Seq.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(new SeqStrict(ndata, start, count, 0, 0));
}
diff --git a/LanguageExt.Core/Prelude/Collections/Prelude_Collections.cs b/LanguageExt.Core/Prelude/Collections/Prelude_Collections.cs
index e7efe4d2e..740477aa6 100644
--- a/LanguageExt.Core/Prelude/Collections/Prelude_Collections.cs
+++ b/LanguageExt.Core/Prelude/Collections/Prelude_Collections.cs
@@ -1086,9 +1086,8 @@ public static Seq Seq(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(new SeqStrict(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(new SeqStrict(arr, 4, 8 + tail.Length, 0, 0));
}
diff --git a/LanguageExt.Tests/CollectionToStringTests.cs b/LanguageExt.Tests/CollectionToStringTests.cs
index 1f36d2ccd..eae72d9ae 100644
--- a/LanguageExt.Tests/CollectionToStringTests.cs
+++ b/LanguageExt.Tests/CollectionToStringTests.cs
@@ -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);
}
diff --git a/LanguageExt.Tests/SeqTests.cs b/LanguageExt.Tests/SeqTests.cs
index 048869bb0..f3a2beffe 100644
--- a/LanguageExt.Tests/SeqTests.cs
+++ b/LanguageExt.Tests/SeqTests.cs
@@ -418,5 +418,142 @@ public void SeqConcatTest()
.Concat(seq2)
.Concat(seq3));
}
+
+ [Fact]
+ public void CheckItems()
+ {
+ var xs = Seq();
+ Assert.True(xs.Count == 0);
+
+ xs = Seq(0);
+ Assert.True(xs.Count == 1);
+ Assert.True(xs[0] == 0);
+
+ xs = Seq(0, 1);
+ Assert.True(xs.Count == 2);
+ Assert.True(xs[0] == 0);
+ Assert.True(xs[1] == 1);
+
+ xs = Seq(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(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(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(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(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(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(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(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(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(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(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);
+ }
}
}