diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml
index 243033f..9975a7d 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/dotnet.yml
@@ -11,6 +11,7 @@ on:
env:
USE_FULL_NUMERIC_PROVIDER: "true"
+ MSBUILDDISABLENODEREUSE: "1"
jobs:
build:
@@ -18,14 +19,18 @@ jobs:
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@v4
+ - uses: actions/checkout@v5
- name: Setup .NET
- uses: actions/setup-dotnet@v4
+ uses: actions/setup-dotnet@v5
with:
global-json-file: global.json
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- - name: Test
- run: dotnet test --no-build --verbosity normal
+ - name: Test (.NET 8.0)
+ run: dotnet test --no-build --framework net8.0 --verbosity quiet
+ - name: Test (.NET 9.0)
+ run: dotnet test --no-build --framework net9.0 --verbosity quiet
+ - name: Test (.NET 10.0)
+ run: dotnet test --no-build --framework net10.0 --verbosity quiet
diff --git a/Directory.Build.props b/Directory.Build.props
index 93e6cb0..8f1b065 100644
--- a/Directory.Build.props
+++ b/Directory.Build.props
@@ -2,11 +2,11 @@
- 12.2.0
- 12.2.0
- 12.2.0
- net8.0;net9.0
- 13
+ 13.0.0
+ 13.0.0
+ 13.0.0
+ net8.0;net9.0;net10.0
+ 14
enable
true
ONIXLabs
@@ -41,16 +41,15 @@
+ Exe
true
false
false
+ true
-
-
-
-
+
@@ -62,9 +61,14 @@
-
-
+
+
+
+
+
+
+
diff --git a/OnixLabs.Core.UnitTests/Linq/IEnumerableExtensionTests.cs b/OnixLabs.Core.UnitTests/Linq/IEnumerableExtensionTests.cs
index 0e7dd97..439fc24 100644
--- a/OnixLabs.Core.UnitTests/Linq/IEnumerableExtensionTests.cs
+++ b/OnixLabs.Core.UnitTests/Linq/IEnumerableExtensionTests.cs
@@ -20,6 +20,7 @@
using System.Numerics;
using OnixLabs.Core.Linq;
using OnixLabs.Core.UnitTests.Data;
+using static OnixLabs.Core.Collections.Collection;
namespace OnixLabs.Core.UnitTests.Linq;
@@ -30,7 +31,7 @@ public sealed class IEnumerableExtensionTests
public void AllEqualByShouldProduceExpectedResultTrueWhenEnumerableIsEmpty()
{
// Given
- IEnumerable> elements = [];
+ IEnumerable> elements = EmptyEnumerable>();
// When
bool result = elements.AllEqualBy(element => element.Text);
@@ -46,7 +47,7 @@ public void AllEqualByShouldProduceExpectedResultTrue()
Record element1 = new("abc", 123, Guid.NewGuid());
Record element2 = new("abc", 123, Guid.NewGuid());
Record element3 = new("abc", 123, Guid.NewGuid());
- IEnumerable> elements = [element1, element2, element3];
+ IEnumerable> elements = EnumerableOf(element1, element2, element3);
// When
bool result = elements.AllEqualBy(element => element.Text);
@@ -62,7 +63,7 @@ public void AllEqualByShouldProduceExpectedResultFalse()
Record element1 = new("abc", 123, Guid.NewGuid());
Record element2 = new("abc", 123, Guid.NewGuid());
Record element3 = new("xyz", 123, Guid.NewGuid());
- IEnumerable> elements = [element1, element2, element3];
+ IEnumerable> elements = EnumerableOf(element1, element2, element3);
// When
bool result = elements.AllEqualBy(element => element.Text);
@@ -78,7 +79,7 @@ public void AnyEqualByShouldProduceExpectedResultTrue()
Record element1 = new("abc", 123, Guid.NewGuid());
Record element2 = new("abc", 123, Guid.NewGuid());
Record element3 = new("xyz", 123, Guid.NewGuid());
- IEnumerable> elements = [element1, element2, element3];
+ IEnumerable> elements = EnumerableOf(element1, element2, element3);
// When
bool result = elements.AnyEqualBy(element => element.Text);
@@ -94,7 +95,7 @@ public void AnyEqualByShouldProduceExpectedResultFalse()
Record element1 = new("abc", 123, Guid.NewGuid());
Record element2 = new("def", 123, Guid.NewGuid());
Record element3 = new("xyz", 123, Guid.NewGuid());
- IEnumerable> elements = [element1, element2, element3];
+ IEnumerable> elements = EnumerableOf(element1, element2, element3);
// When
bool result = elements.AnyEqualBy(element => element.Text);
@@ -108,7 +109,7 @@ public void CountShouldReturnCountOfAllElementsNonGeneric()
{
// Given
const int expected = 3;
- IEnumerable elements = new[] { 1, 2, 3 };
+ IEnumerable elements = EnumerableOf(1, 2, 3);
// When
int actual = elements.Count();
@@ -125,7 +126,7 @@ public void CountNotShouldProduceExpectedResult()
Record element1 = new("abc", 123, Guid.NewGuid());
Record element2 = new("def", 123, Guid.NewGuid());
Record element3 = new("xyz", 456, Guid.NewGuid());
- IEnumerable> elements = [element1, element2, element3];
+ IEnumerable> elements = EnumerableOf(element1, element2, element3);
// When
int actual = elements.CountNot(element => element.Number == 456);
@@ -138,7 +139,7 @@ public void CountNotShouldProduceExpectedResult()
public void FirstOrNoneShouldReturnNoneWhenEnumerableIsEmpty()
{
// Given
- IEnumerable elements = [];
+ IEnumerable elements = EmptyEnumerable();
Optional expected = Optional.None;
// When
@@ -152,7 +153,7 @@ public void FirstOrNoneShouldReturnNoneWhenEnumerableIsEmpty()
public void FirstOrNoneShouldReturnFirstElementWhenCollectionIsNotEmpty()
{
// Given
- IEnumerable elements = [1, 2, 3];
+ IEnumerable elements = EnumerableOf(1, 2, 3);
Optional expected = 1;
// When
@@ -166,7 +167,7 @@ public void FirstOrNoneShouldReturnFirstElementWhenCollectionIsNotEmpty()
public void FirstOrNoneShouldReturnFirstElementMatchingPredicateWhenCollectionIsNotEmpty()
{
// Given
- IEnumerable elements = [1, 2, 3];
+ IEnumerable elements = EnumerableOf(1, 2, 3);
Optional expected = 2;
// When
@@ -180,7 +181,7 @@ public void FirstOrNoneShouldReturnFirstElementMatchingPredicateWhenCollectionIs
public void FirstOrNoneShouldReturnNoneWhenNoElementMatchesPredicateAndCollectionIsNotEmpty()
{
// Given
- IEnumerable elements = [1, 2, 3];
+ IEnumerable elements = EnumerableOf(1, 2, 3);
Optional expected = Optional.None;
// When
@@ -194,7 +195,7 @@ public void FirstOrNoneShouldReturnNoneWhenNoElementMatchesPredicateAndCollectio
public void ForEachShouldProduceExpectedResultNonGeneric()
{
// Given
- IEnumerable enumerable = new[] { new Element(), new Element(), new Element() };
+ IEnumerable enumerable = ArrayOf(new Element(), new Element(), new Element());
// When
enumerable.ForEach(element => (element as Element)!.Called = true);
@@ -207,7 +208,7 @@ public void ForEachShouldProduceExpectedResultNonGeneric()
public void ForEachShouldProduceExpectedResult()
{
// Given
- IEnumerable enumerable = new[] { new Element(), new Element(), new Element() };
+ IEnumerable enumerable = ArrayOf(new Element(), new Element(), new Element());
// When
enumerable.ForEach(element => element.Called = true);
@@ -220,8 +221,8 @@ public void ForEachShouldProduceExpectedResult()
public void GetContentHashCodeShouldProduceExpectedResultEqualNonGeneric()
{
// Given
- IEnumerable enumerable1 = new[] { new Element(1), new Element(2), new Element(3) };
- IEnumerable enumerable2 = new[] { new Element(1), new Element(2), new Element(3) };
+ IEnumerable enumerable1 = EnumerableOf(new Element(1), new Element(2), new Element(3));
+ IEnumerable enumerable2 = EnumerableOf(new Element(1), new Element(2), new Element(3));
// When
int hashCode1 = enumerable1.GetContentHashCode();
@@ -235,8 +236,8 @@ public void GetContentHashCodeShouldProduceExpectedResultEqualNonGeneric()
public void GetContentHashCodeShouldProduceExpectedResultEqual()
{
// Given
- IEnumerable enumerable1 = [new Element(1), new Element(2), new Element(3)];
- IEnumerable enumerable2 = [new Element(1), new Element(2), new Element(3)];
+ IEnumerable enumerable1 = EnumerableOf(new Element(1), new Element(2), new Element(3));
+ IEnumerable enumerable2 = EnumerableOf(new Element(1), new Element(2), new Element(3));
// When
int hashCode1 = enumerable1.GetContentHashCode();
@@ -250,8 +251,8 @@ public void GetContentHashCodeShouldProduceExpectedResultEqual()
public void GetContentHashCodeShouldProduceExpectedResultDifferent()
{
// Given
- IEnumerable enumerable1 = [new Element(1), new Element(2), new Element(3)];
- IEnumerable enumerable2 = [new Element(3), new Element(2), new Element(1)];
+ IEnumerable enumerable1 = EnumerableOf(new Element(1), new Element(2), new Element(3));
+ IEnumerable enumerable2 = EnumerableOf(new Element(3), new Element(2), new Element(1));
// When
int hashCode1 = enumerable1.GetContentHashCode();
@@ -265,7 +266,7 @@ public void GetContentHashCodeShouldProduceExpectedResultDifferent()
public void IsEmptyShouldProduceExpectedResultTrueNonGeneric()
{
// Given
- IEnumerable enumerable = Array.Empty