Skip to content

Commit 6e4a581

Browse files
authored
Update to .Net 10 and fix unit tests on Linux (#18)
* Update to .Net 10 and fix unit tests on Linux * Updated CI/CD workflow for .Net 10
1 parent 447757d commit 6e4a581

17 files changed

Lines changed: 108 additions & 68 deletions

File tree

.github/workflows/BuildAndTest.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ on: [push, pull_request]
44

55
jobs:
66
build:
7-
runs-on: windows-2019
7+
runs-on: windows-2025
88
steps:
99
- uses: actions/checkout@v1
1010
with:
1111
submodules: recursive
1212
- name: Setup .NetCore
1313
uses: actions/setup-dotnet@v1
1414
with:
15-
dotnet-version: 6.0.100
15+
dotnet-version: 10.0.101
1616
- name: Build with dotnet
1717
run: |
1818
cd TMG-Framework

TMG-Framework/src/TMG-Framework/Saving/SaveMatrixAsCSV.cs

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -58,36 +58,34 @@ public override void Invoke((Matrix Matrix, WriteStream Stream) context)
5858

5959
private void WriteCSVMatrix((Matrix Matrix, WriteStream Stream) context)
6060
{
61-
using (StreamWriter writer = new StreamWriter(context.Stream))
61+
using var writer = new StreamWriter(context.Stream);
62+
var matrix = context.Matrix;
63+
var rowCategories = matrix.RowCategories;
64+
var columnCategories = matrix.ColumnCategories;
65+
var rowLength = rowCategories.Count;
66+
var columnLength = columnCategories.Count;
67+
writer.Write('"');
68+
writer.Write(FirstIndexHeader.Invoke().Replace('"', '\''));
69+
writer.Write('\\');
70+
writer.Write(SecondIndexHeader.Invoke().Replace('"', '\''));
71+
writer.Write('"');
72+
for (int i = 0; i < columnLength; i++)
6273
{
63-
var matrix = context.Matrix;
64-
var rowCategories = matrix.RowCategories;
65-
var columnCategories = matrix.ColumnCategories;
66-
var rowLength = rowCategories.Count;
67-
var columnLength = columnCategories.Count;
68-
writer.Write('"');
69-
writer.Write(FirstIndexHeader.Invoke().Replace('"', '\''));
70-
writer.Write('\\');
71-
writer.Write(SecondIndexHeader.Invoke().Replace('"', '\''));
72-
writer.Write('"');
73-
for (int i = 0; i < columnLength; i++)
74+
writer.Write(',');
75+
writer.Write(columnCategories.GetSparseIndex(i));
76+
}
77+
writer.WriteLine();
78+
var data = matrix.Data;
79+
int pos = 0;
80+
for (int i = 0; i < rowLength; i++)
81+
{
82+
writer.Write(rowCategories.GetSparseIndex(i));
83+
for (int j = 0; j < columnLength; j++)
7484
{
7585
writer.Write(',');
76-
writer.Write(columnCategories.GetSparseIndex(i));
86+
writer.Write(data[pos]);
7787
}
7888
writer.WriteLine();
79-
var data = matrix.Data;
80-
int pos = 0;
81-
for (int i = 0; i < rowLength; i++)
82-
{
83-
writer.Write(rowCategories.GetSparseIndex(i));
84-
for (int j = 0; j < columnLength; j++)
85-
{
86-
writer.Write(',');
87-
writer.Write(data[pos]);
88-
}
89-
writer.WriteLine();
90-
}
9189
}
9290
}
9391

TMG-Framework/src/TMG-Framework/TMG-Framework.csproj

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFramework>net6.0</TargetFramework>
4+
<TargetFramework>net10.0</TargetFramework>
55
<RootNamespace>TMG</RootNamespace>
66
<Authors>University of Toronto</Authors>
77
<Company>University of Toronto</Company>
@@ -20,13 +20,11 @@
2020
</PropertyGroup>
2121

2222
<ItemGroup>
23-
<PackageReference Include="System.Memory" Version="4.5.0" />
24-
<PackageReference Include="System.Numerics.Vectors" Version="4.5.0" />
2523
</ItemGroup>
2624

2725
<ItemGroup>
2826
<ProjectReference Include="..\..\..\XTMF2\src\XTMF2.Interfaces\XTMF2.Interfaces.csproj" />
2927
<ProjectReference Include="..\..\..\XTMF2\src\XTMF2\XTMF2.csproj" />
3028
</ItemGroup>
3129

32-
</Project>
30+
</Project>

TMG-Framework/src/TMG-Framework/Utilities/CSVReader.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ public bool LoadLine(out int columns)
248248
ExpandDataSections();
249249
}
250250
Data[numberOfColumns++] = new CsvPartition(prevEnd + 1, i);
251+
addOne = false;
251252
}
252253
break;
253254
}
@@ -334,6 +335,7 @@ public bool LoadLine(out int columns)
334335
ExpandDataSections();
335336
}
336337
Data[numberOfColumns++] = new CsvPartition(prevEnd + 1, i);
338+
addOne = false;
337339
}
338340
break;
339341
}

TMG-Framework/src/TMG-Framework/Utilities/VectorHelper/VectorHelper.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -886,10 +886,6 @@ public static void Negate(float[] dest, float[] source, int offset, int length)
886886
/// <param name="value">The value to set it to.</param>
887887
internal static void Memset(Span<float> dest, float value)
888888
{
889-
if (dest == null)
890-
{
891-
throw new ArgumentNullException(nameof(dest));
892-
}
893889
var remainder = (dest.Length) % Vector<float>.Count;
894890
var destSpan = dest.Slice(0, dest.Length - remainder).NonPortableCast<float, Vector<float>>();
895891
var vValue = new Vector<float>(value);

TMG-Framework/tests/PerformanceTest/PerformanceTest.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
<PropertyGroup>
44
<OutputType>Exe</OutputType>
5-
<TargetFramework>net6.0</TargetFramework>
5+
<TargetFramework>net10.0</TargetFramework>
66
</PropertyGroup>
77

88
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
@@ -14,4 +14,4 @@
1414
<ProjectReference Include="..\TMG-Framework.Test\TMG-Framework.Test.csproj" />
1515
</ItemGroup>
1616

17-
</Project>
17+
</Project>

TMG-Framework/tests/PerformanceTest/Program.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ You should have received a copy of the GNU General Public License
2222
using System.Linq;
2323
using TMG;
2424
using TMG.Processing;
25+
using Microsoft.VisualStudio.TestTools.UnitTesting;
26+
27+
[assembly: DoNotParallelize]
2528

2629
namespace PerformanceTest
2730
{

TMG-Framework/tests/TMG-Framework.Test/Data/CategoryMapTest.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public void Aggregate()
4848
va.Data[2] = 2;
4949
va.Data[3] = 4;
5050
Assert.IsTrue(map.AggregateToDestination(va, out var result, ref error), error);
51-
Assert.AreEqual(2, result.Data.Length);
51+
Assert.HasCount(2, result.Data);
5252
Assert.AreSame(b, result.Categories);
5353
Assert.AreEqual(10, result.Data[0]);
5454
Assert.AreEqual(6, result.Data[1]);
@@ -95,12 +95,12 @@ public void CreateReverseIndex()
9595
}, out var map, ref error), error);
9696
var index = map.CreateReverseIndex();
9797
var list = index[0];
98-
Assert.AreEqual(2, list.Count);
98+
Assert.HasCount(2, list);
9999
Assert.AreEqual(0, (int)list[0]);
100100
Assert.AreEqual(1, (int)list[1]);
101101

102102
list = index[1];
103-
Assert.AreEqual(2, list.Count);
103+
Assert.HasCount(2, list);
104104
Assert.AreEqual(2, (int)list[0]);
105105
Assert.AreEqual(3, (int)list[1]);
106106
}

TMG-Framework/tests/TMG-Framework.Test/Data/RangeTest.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public void RangeSetSeriesConstructorTest()
3636
{
3737
List<RangeSet> tempRange = GenerateTempRange();
3838
RangeSetSet target = new RangeSetSet(tempRange);
39-
Assert.AreEqual(target.Count, 2);
39+
Assert.AreEqual(2, target.Count);
4040
}
4141

4242
/// <summary>
@@ -62,8 +62,8 @@ public void TryParseTestFail()
6262
string rangeString = "{1-2,4-5},{11-12,14-15";
6363
bool actual = RangeSetSet.TryParse(ref error, rangeString, out RangeSetSet output);
6464
Assert.IsNotNull(error);
65-
Assert.AreEqual(null, output);
66-
Assert.AreEqual(false, actual);
65+
Assert.IsNull(output);
66+
Assert.IsFalse(actual);
6767
}
6868

6969
/// <summary>
@@ -76,7 +76,7 @@ public void TryParseTestNonError()
7676
RangeSetSet outputExpected = new RangeSetSet(GenerateTempRange());
7777
var actual = RangeSetSet.TryParse(rangeString, out RangeSetSet output);
7878
Assert.AreEqual(outputExpected, output);
79-
Assert.AreEqual(true, actual);
79+
Assert.IsTrue(actual);
8080
}
8181

8282
/// <summary>
@@ -89,9 +89,9 @@ public void TryParseTestSuccess()
8989
string rangeString = "{1-2,4-5},{11-12,14-15}";
9090
RangeSetSet outputExpected = new RangeSetSet(GenerateTempRange());
9191
var actual = RangeSetSet.TryParse(ref error, rangeString, out RangeSetSet output);
92-
Assert.AreEqual(null, error);
92+
Assert.IsNull(error);
9393
Assert.AreEqual(outputExpected, output);
94-
Assert.AreEqual(true, actual);
94+
Assert.IsTrue(actual);
9595
}
9696

9797
private static List<RangeSet> GenerateTempRange()

TMG-Framework/tests/TMG-Framework.Test/Loading/TestLoadCategoryMapFromThirdNormalizedCSV.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ public void LoadMapWithDestinations()
111111
[TestMethod]
112112
public void LoadMapWithBadDestinations()
113113
{
114-
Assert.ThrowsException<XTMFRuntimeException>(() =>
114+
Helper.ThrowsException<XTMFRuntimeException>(() =>
115115
{
116116
string error = null;
117117
var baseCategories = Categories.CreateCategories(new List<int> { 1, 2, 3, 4 }, ref error);
@@ -144,7 +144,7 @@ public void LoadMapWithBadDestinations()
144144
[TestMethod]
145145
public void LoadMapWithBadBase()
146146
{
147-
Assert.ThrowsException<XTMFRuntimeException>(() =>
147+
Helper.ThrowsException<XTMFRuntimeException>(() =>
148148
{
149149
string error = null;
150150
var baseCategories = Categories.CreateCategories(new List<int> { 1, 2, 4 }, ref error);

0 commit comments

Comments
 (0)