This commit is contained in:
h z
2024-06-21 21:59:13 +08:00
commit 614bc59897
28 changed files with 2049 additions and 0 deletions

142
tests/REFFTest.cs Normal file
View File

@@ -0,0 +1,142 @@
using System;
using System.Numerics;
namespace SkeletonTest.tests;
/// <summary>
///
/// </summary>
public static class REFFTest
{
private static readonly Complex ii = new Complex(0, 1);
[Test]
public static void M22RREFtest()
{
Assert.IsTrue(new R22(2, 3, 4, 5).RowReduce().ReducedForm.IsEqualApprox(R22.One));
Assert.IsTrue(new R22(4, 8, 1, 2).RowReduce().ReducedForm.IsEqualApprox(new R22(1, 2, 0, 0)));
Assert.IsTrue(new C22(2, 3, 4, 3 + 3 * ii).RowReduce().ReducedForm.IsEqualApprox(C22.One));
Assert.IsTrue(new C22(1 + ii, 1, 2 + 2 * ii, 2).RowReduce().ReducedForm
.IsEqualApprox(new C22(1, new Complex(0.5, -0.5), 0, 0)));
}
[Test]
public static void M33RREFTest()
{
var s = new R33(
2, 3, 4,
0, 6, 7,
8, 9, 0
).RowReduce().ReducedForm.Representation;
Assert.IsTrue(new R33(
2, 3, 4,
0, 6, 7,
8, 9, 0
).RowReduce().ReducedForm.IsEqualApprox(R33.One));
Assert.IsTrue(R33.Zero.RowReduce().ReducedForm.IsEqualApprox(R33.Zero));
Assert.IsTrue(new C33(
0, 2 + ii, 2 + 2 * ii,
3 + ii, 0, 3 + 3 * ii,
4 + 2 * ii, 2 + 6 * ii, 0
).RowReduce().ReducedForm.IsEqualApprox(C33.One)
);
Assert.IsTrue(new C33(
0, 0, 2 + 2 * ii,
3, 3 * ii, 1 + 2 * ii,
6 + ii, 0, 0
).RowReduce().ReducedForm.IsEqualApprox(C33.One)
);
Console.WriteLine(
new C33(
0, 0, 2 + 2 * ii,
3, 3 * ii, 1 + 2 * ii,
0, 0, 0
).RowReduce().ReducedForm.Representation);
Console.WriteLine(
new C33(
0, 0, 2 + 2 * ii,
3, 3 * ii, 1 + 2 * ii,
0, 0, 0
).Representation
);
Assert.IsTrue(
new C33(
0, 0, 2 + 2 * ii,
3, 3 * ii, 1 + 2 * ii,
0, 0, 0
).RowReduce().ReducedForm.IsEqualApprox(
new C33(
1, ii, 0,
0, 0, 1,
0, 0, 0
)
)
);
}
[Test]
public static void M44RREFTest()
{
Assert.IsTrue(
new R44(
0, 1, 0, 1,
0, 0, 1, 0,
1, 0, 1, 0,
1, 1, 1, 1
).RowReduce().ReducedForm.IsEqualApprox(
new R44(
1, 0, 0, 0,
0, 1, 0, 1,
0, 0, 1, 0,
0, 0, 0, 0
)
)
);
Assert.IsTrue(
new R44(
0, 1, 0, 1,
1, 0, 1, 0,
0, 0, 1, 1,
1, 1, 0, 0
).RowReduce().ReducedForm.IsEqualApprox(
new R44(
1, 0, 0, -1,
0, 1, 0, 1,
0, 0, 1, 1,
0, 0, 0, 0
)
)
);
Assert.IsTrue(
new R44(
0, 1, 0, 1,
1, 0, 1, 0,
0, 0, 1, 1,
1, 0, 1, 1
).RowReduce().ReducedForm.IsEqualApprox(R44.One)
);
Assert.IsTrue(
new C44(
0, 1, 0, 1 + ii,
1, 0, 1, 0,
0, 0, 1, 1 + ii,
1, 0, 1, 1
).RowReduce().ReducedForm.IsEqualApprox(C44.One)
);
Assert.IsTrue(
new C44(
0, 1, 0, 1 + ii,
1, 0, 1, 0,
0, 0, 1, 1 + ii,
1, 1, 0, 0
).RowReduce().ReducedForm.IsEqualApprox(
new C44(
1, 0, 0, -1 - ii,
0, 1, 0, 1 + ii,
0, 0, 1, 1 + ii,
0, 0, 0, 0
)
)
);
}
}