Skip to content

Commit 60053e2

Browse files
committed
fix: OpenBugs attribute and LargeMemory attr
1 parent 770cd50 commit 60053e2

10 files changed

Lines changed: 672 additions & 218 deletions

File tree

test/NumSharp.UnitTest/Backends/Kernels/ILKernelGenerator.LargeArray.BattleTest.cs

Lines changed: 461 additions & 0 deletions
Large diffs are not rendered by default.

test/NumSharp.UnitTest/Backends/Kernels/NumpyAlignmentBugTests.cs

Lines changed: 83 additions & 85 deletions
Large diffs are not rendered by default.

test/NumSharp.UnitTest/Backends/Unmanaged/AllocationTests.cs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,12 @@ namespace NumSharp.UnitTest.Backends.Unmanaged
99
/// Tests for large memory allocations (4-44GB).
1010
/// Marked as [LargeMemoryTest] to auto-exclude from CI.
1111
/// </summary>
12-
[LargeMemoryTest]
1312
public class AllocationTests
1413
{
1514
private const long onegb = 1_073_741_824;
1615
private static readonly object _lock = new Object();
1716

18-
[Test]
17+
[Test, LargeMemoryTest]
1918
public void Allocate_1GB()
2019
{
2120
lock (_lock)
@@ -26,7 +25,7 @@ public void Allocate_1GB()
2625
}
2726
}
2827

29-
[Test]
28+
[Test, LargeMemoryTest]
3029
public void Allocate_2GB()
3130
{
3231
lock (_lock)
@@ -37,7 +36,7 @@ public void Allocate_2GB()
3736
}
3837
}
3938

40-
[Test]
39+
[Test, LargeMemoryTest]
4140
public void Allocate_4GB()
4241
{
4342
lock (_lock)
@@ -48,7 +47,7 @@ public void Allocate_4GB()
4847
}
4948
}
5049

51-
[Test]
50+
[Test, LargeMemoryTest]
5251
public void Allocate_44GB()
5352
{
5453
lock (_lock)

test/NumSharp.UnitTest/Issues/448.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@
55

66
namespace NumSharp.UnitTest.Issues
77
{
8-
[OpenBugs]
98
public class Issue448
109
{
11-
[Test]
10+
[Test, OpenBugs]
1211
public void ReproducingTest1()
1312
{
1413
NDArray nd = new double[,] {{1, 2, 3}, {4, 5, 6}};
@@ -18,7 +17,7 @@ public void ReproducingTest1()
1817
nd.Should().BeOfValues(-2, -2, 3, 4, 5, 6);
1918
}
2019

21-
[Test]
20+
[Test, OpenBugs]
2221
public void ReproducingTest2()
2322
{
2423
NDArray nd = new double[,] {{1, 2, 3}, {4, 5, 6}};

test/NumSharp.UnitTest/Logic/np.isinf.Test.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,9 @@ namespace NumSharp.UnitTest.Logic
1313
/// DEAD CODE: DefaultEngine.IsInfinite returns null.
1414
/// Marked OpenBugs until np.isinf is implemented.
1515
/// </remarks>
16-
[OpenBugs]
1716
public class np_isinf_Test
1817
{
19-
[Test]
18+
[Test, OpenBugs]
2019
public void np_isinf_1D()
2120
{
2221
var arr = new NDArray(new[] { 1.0, Math.PI, double.PositiveInfinity, double.NegativeInfinity, double.NaN, 0.0 });
@@ -28,7 +27,7 @@ public void np_isinf_1D()
2827
Assert.IsTrue(Enumerable.SequenceEqual(result.Data<bool>(), new[] { false, false, true, true, false, false }));
2928
}
3029

31-
[Test]
30+
[Test, OpenBugs]
3231
public void np_isinf_2D()
3332
{
3433
var arr = new NDArray(new[] {
@@ -42,7 +41,7 @@ public void np_isinf_2D()
4241
Assert.IsTrue(Enumerable.SequenceEqual(result.Data<bool>(), new[] { true, false, false, true, false, false }));
4342
}
4443

45-
[Test]
44+
[Test, OpenBugs]
4645
public void np_isinf_Float32()
4746
{
4847
// Test with float32 array
@@ -54,7 +53,7 @@ public void np_isinf_Float32()
5453
Assert.IsTrue(Enumerable.SequenceEqual(result.Data<bool>(), new[] { false, true, true, false, false, false }));
5554
}
5655

57-
[Test]
56+
[Test, OpenBugs]
5857
public void np_isinf_IntegerTypes_AlwaysFalse()
5958
{
6059
// Integer types cannot be infinity
@@ -64,7 +63,7 @@ public void np_isinf_IntegerTypes_AlwaysFalse()
6463
Assert.IsFalse(np.any(np.isinf(np.array(new short[] { 0, short.MaxValue, short.MinValue }))));
6564
}
6665

67-
[Test]
66+
[Test, OpenBugs]
6867
public void np_isinf_Scalar()
6968
{
7069
Assert.IsFalse(np.isinf(np.array(1.0)).GetBoolean());
@@ -73,7 +72,7 @@ public void np_isinf_Scalar()
7372
Assert.IsTrue(np.isinf(np.array(double.NegativeInfinity)).GetBoolean());
7473
}
7574

76-
[Test]
75+
[Test, OpenBugs]
7776
public void np_isinf_EmptyArray()
7877
{
7978
var empty = np.array(new double[0]);
@@ -82,7 +81,7 @@ public void np_isinf_EmptyArray()
8281
Assert.AreEqual(typeof(bool), result.dtype);
8382
}
8483

85-
[Test]
84+
[Test, OpenBugs]
8685
public void np_isinf_SlicedArray()
8786
{
8887
// Test with non-contiguous (sliced) array
@@ -94,7 +93,7 @@ public void np_isinf_SlicedArray()
9493
Assert.IsTrue(Enumerable.SequenceEqual(result.Data<bool>(), new[] { false, false, false }));
9594
}
9695

97-
[Test]
96+
[Test, OpenBugs]
9897
public void np_isinf_NaNIsNotInfinity()
9998
{
10099
// Important: NaN is NOT infinity
@@ -103,7 +102,7 @@ public void np_isinf_NaNIsNotInfinity()
103102
Assert.IsFalse(result.GetBoolean(0));
104103
}
105104

106-
[Test]
105+
[Test, OpenBugs]
107106
public void np_isinf_MaxValueIsNotInfinity()
108107
{
109108
// Important: MaxValue/MinValue are NOT infinity

test/NumSharp.UnitTest/LongIndexing/LongIndexingBroadcastTest.cs

Lines changed: 20 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ namespace NumSharp.UnitTest.LongIndexing;
2424
/// NOTE: Marked [LargeMemoryTest] because iterating over 2.36 billion elements causes
2525
/// excessive CPU/memory pressure when TUnit runs tests in parallel.
2626
/// </summary>
27-
[LargeMemoryTest]
2827
public class LongIndexingBroadcastTest
2928
{
3029
/// <summary>
@@ -55,7 +54,7 @@ private static NDArray BroadcastScalar(double value)
5554
// SHAPE AND INDEXING (all pass - no memory allocation needed)
5655
// ================================================================
5756

58-
[Test]
57+
[Test, LargeMemoryTest]
5958
public async Task Broadcast_HasCorrectSize()
6059
{
6160
var arr = BroadcastScalar((byte)42);
@@ -64,15 +63,15 @@ public async Task Broadcast_HasCorrectSize()
6463
Assert.AreEqual(LargeSize, arr.shape[0]);
6564
}
6665

67-
[Test]
66+
[Test, LargeMemoryTest]
6867
public async Task Broadcast_IsBroadcasted()
6968
{
7069
var arr = BroadcastScalar((byte)42);
7170
Assert.IsTrue(arr.Shape.IsBroadcasted);
7271
Assert.IsFalse(arr.Shape.IsContiguous);
7372
}
7473

75-
[Test]
74+
[Test, LargeMemoryTest]
7675
public async Task Broadcast_GetAtLargeIndex()
7776
{
7877
var arr = BroadcastScalar((byte)77);
@@ -87,7 +86,7 @@ public async Task Broadcast_GetAtLargeIndex()
8786
// REDUCTIONS (these iterate over all elements logically - PASS)
8887
// ================================================================
8988

90-
[Test]
89+
[Test, LargeMemoryTest]
9190
public async Task Broadcast_Mean()
9291
{
9392
var arr = BroadcastScalar((byte)42);
@@ -98,7 +97,7 @@ public async Task Broadcast_Mean()
9897
Assert.AreEqual(42.0, result.GetDouble(0), 0.001);
9998
}
10099

101-
[Test]
100+
[Test, LargeMemoryTest]
102101
public async Task Broadcast_Min()
103102
{
104103
var arr = BroadcastScalar((byte)7);
@@ -107,7 +106,7 @@ public async Task Broadcast_Min()
107106
Assert.AreEqual(7, result.GetByte(0));
108107
}
109108

110-
[Test]
109+
[Test, LargeMemoryTest]
111110
public async Task Broadcast_Max()
112111
{
113112
var arr = BroadcastScalar((byte)200);
@@ -116,7 +115,7 @@ public async Task Broadcast_Max()
116115
Assert.AreEqual(200, result.GetByte(0));
117116
}
118117

119-
[Test]
118+
[Test, LargeMemoryTest]
120119
public async Task Broadcast_ArgMax()
121120
{
122121
var arr = BroadcastScalar((byte)100);
@@ -126,7 +125,7 @@ public async Task Broadcast_ArgMax()
126125
Assert.AreEqual(0L, result);
127126
}
128127

129-
[Test]
128+
[Test, LargeMemoryTest]
130129
public async Task Broadcast_ArgMin()
131130
{
132131
var arr = BroadcastScalar((byte)50);
@@ -136,7 +135,7 @@ public async Task Broadcast_ArgMin()
136135
Assert.AreEqual(0L, result);
137136
}
138137

139-
[Test]
138+
[Test, LargeMemoryTest]
140139
public async Task Broadcast_All()
141140
{
142141
var arr = BroadcastScalar((byte)1);
@@ -145,7 +144,7 @@ public async Task Broadcast_All()
145144
Assert.IsTrue(result);
146145
}
147146

148-
[Test]
147+
[Test, LargeMemoryTest]
149148
public async Task Broadcast_All_Zero()
150149
{
151150
var arr = BroadcastScalar((byte)0);
@@ -154,7 +153,7 @@ public async Task Broadcast_All_Zero()
154153
Assert.IsFalse(result);
155154
}
156155

157-
[Test]
156+
[Test, LargeMemoryTest]
158157
public async Task Broadcast_Any()
159158
{
160159
var arr = BroadcastScalar((byte)1);
@@ -163,7 +162,7 @@ public async Task Broadcast_Any()
163162
Assert.IsTrue(result);
164163
}
165164

166-
[Test]
165+
[Test, LargeMemoryTest]
167166
public async Task Broadcast_Any_Zero()
168167
{
169168
var arr = BroadcastScalar((byte)0);
@@ -172,7 +171,7 @@ public async Task Broadcast_Any_Zero()
172171
Assert.IsFalse(result);
173172
}
174173

175-
[Test]
174+
[Test, LargeMemoryTest]
176175
public async Task Broadcast_CountNonzero()
177176
{
178177
var arr = BroadcastScalar((byte)1);
@@ -182,7 +181,7 @@ public async Task Broadcast_CountNonzero()
182181
Assert.AreEqual(LargeSize, result);
183182
}
184183

185-
[Test]
184+
[Test, LargeMemoryTest]
186185
public async Task Broadcast_CountNonzero_Zero()
187186
{
188187
var arr = BroadcastScalar((byte)0);
@@ -195,7 +194,7 @@ public async Task Broadcast_CountNonzero_Zero()
195194
// SHAPE MANIPULATION (most pass - only reshape with slice fails)
196195
// ================================================================
197196

198-
[Test]
197+
[Test, LargeMemoryTest]
199198
public async Task Broadcast_ExpandDims()
200199
{
201200
var arr = BroadcastScalar((byte)11);
@@ -207,7 +206,7 @@ public async Task Broadcast_ExpandDims()
207206
Assert.AreEqual(LargeSize, result.shape[1]);
208207
}
209208

210-
[Test]
209+
[Test, LargeMemoryTest]
211210
public async Task Broadcast_Atleast2d()
212211
{
213212
var arr = BroadcastScalar((byte)22);
@@ -217,7 +216,7 @@ public async Task Broadcast_Atleast2d()
217216
Assert.AreEqual(2, result.ndim);
218217
}
219218

220-
[Test]
219+
[Test, LargeMemoryTest]
221220
public async Task Broadcast_Atleast3d()
222221
{
223222
var arr = BroadcastScalar((byte)22);
@@ -231,7 +230,7 @@ public async Task Broadcast_Atleast3d()
231230
// 2D BROADCAST (tests multi-dimensional long indexing)
232231
// ================================================================
233232

234-
[Test]
233+
[Test, LargeMemoryTest]
235234
public async Task Broadcast2D_RowBroadcast()
236235
{
237236
// Broadcast a single row to many rows
@@ -246,7 +245,7 @@ public async Task Broadcast2D_RowBroadcast()
246245
Assert.AreEqual(77, arr.GetByte(rows - 1, cols - 1));
247246
}
248247

249-
[Test]
248+
[Test, LargeMemoryTest]
250249
public async Task Broadcast2D_ColumnBroadcast()
251250
{
252251
// Broadcast a single column to many columns
@@ -261,7 +260,7 @@ public async Task Broadcast2D_ColumnBroadcast()
261260
Assert.AreEqual(88, arr.GetByte(rows - 1, cols - 1));
262261
}
263262

264-
[Test]
263+
[Test, LargeMemoryTest]
265264
public async Task Broadcast2D_Transpose()
266265
{
267266
// Test transpose of a broadcast array

0 commit comments

Comments
 (0)