Files
Skeleton.Test/tests/MultiplicationTest.cs
2024-11-30 20:11:27 +00:00

66 lines
2.9 KiB
C#

using System;
using Skeleton.Constants;
namespace Skeleton.Test;
[TestFixture]
public class MultiplicationTest : BaseTest
{
[Test]
public static void Dim2MultiplicationTest()
{
C22 a = C22.One;
Assert.IsTrue((a*a).IsEqualApprox(a));
C22 x = new(1, 2, 3, 4);
Console.WriteLine((a * x).Representation);
Assert.IsTrue((a*x).IsEqualApprox(x));
}
[Test]
public static void Dim3MultiplicationTest()
{
C33 a = C33.One;
Assert.IsTrue((a * a).IsEqualApprox(a));
C33 x = new (1, 2, 3, 4, 5, 6, 7, 8, 9);
Console.WriteLine((a * x).Representation);
Assert.IsTrue((a * x).IsEqualApprox(x));
C33 w = new C33(1, 2, 1, 0, 1, 0, 1, 2, 2);
C33 q = x * w;
Console.WriteLine(q.Representation);
Assert.IsTrue(q.IsEqualApprox(new C33(4, 10, 7, 10, 25, 16, 16, 40, 25)));
Console.WriteLine(w.Det());
Console.WriteLine((w * w.Inv()).Representation);
}
[Test]
public static void Dim3FatalTest()
{
C33 x = new C33(
-0.06193827855776826 - 0.4250926599018542 * AlgebraConstant.I,
0.007091160225072862 - 0.015294575102947128 * AlgebraConstant.I,
0.003671134909589688 + 0.062258655745737884 * AlgebraConstant.I, 0,
0.05141624933009378 + 0.4547441198263111 * AlgebraConstant.I,
-0.03444137818239487 + 0.048372053040504 * AlgebraConstant.I, 0, 0,
-0.08950750917735827 - 0.42794917138051874 * AlgebraConstant.I
);
C33 y = new C33(-0.7374752517963452,
0.2076562987916279 - 0.4172252733550336 * AlgebraConstant.I,
-0.485038065510323 + 0.060582677721435385 * AlgebraConstant.I,
-0.24835727407388974 - 0.44965209824283314 * AlgebraConstant.I,
0.08264445465163228 - 0.005898122053593788 * AlgebraConstant.I,
0.5041613222759088 + 0.6892663653138651 * AlgebraConstant.I,
-0.432000004242065 - 0.0750859792716085 * AlgebraConstant.I,
-0.5195103580182339 + 0.7113691215039636 * AlgebraConstant.I,
-0.17823093191240846 - 0.0058981220535937766 * AlgebraConstant.I);
C33 correct = new C33(0.040128390403216 + 0.2869338899984155 * AlgebraConstant.I,
-0.23592151696374444 - 0.09346927406396768 * AlgebraConstant.I,
0.06962569868942127 + 0.1884924286446428 * AlgebraConstant.I,
0.21021778660958712 - 0.15436909690665243 * AlgebraConstant.I,
-0.009586327958581496 - 0.012351495059150161 * AlgebraConstant.I,
-0.2810939191691945 + 0.25628563140294075 * AlgebraConstant.I,
0.006534261732735796 + 0.1915948028305167 * AlgebraConstant.I,
0.3509299042313585 + 0.1586511490659945 * AlgebraConstant.I,
0.013428910328302401 + 0.07680170584013409 * AlgebraConstant.I);
Assert.IsTrue((x* y).IsEqualApprox(correct));
}
}