66 lines
2.9 KiB
C#
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));
|
|
}
|
|
|
|
} |