m3
This commit is contained in:
110
tests/VectorSpaceTest.cs
Normal file
110
tests/VectorSpaceTest.cs
Normal file
@@ -0,0 +1,110 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Numerics;
|
||||
|
||||
namespace SkeletonTest.tests;
|
||||
|
||||
/// <summary>
|
||||
/// test for vector spaces
|
||||
/// </summary>
|
||||
public static class VectorSpaceTest
|
||||
{
|
||||
private static readonly Complex ii = new Complex(0, 1);
|
||||
[Test]
|
||||
public static void Dim2Test()
|
||||
{
|
||||
R2Space r2a = new R2Space(new List<R2>() { new R2(3, 2) });
|
||||
Assert.IsTrue(r2a.Rank == 1);
|
||||
Assert.IsTrue(r2a.ContainsVector(new R2(9, 6)));
|
||||
Assert.IsTrue(!r2a.ContainsVector(new R2(1,0)));
|
||||
R2Space r2ac = r2a.OrthogonalComplementSpace;
|
||||
Assert.IsTrue(r2ac.ContainsVector(new R2(2, -3)));
|
||||
C2Space c2a = new C2Space(new List<C2>() { new C2(1 - ii, 1 + ii) });
|
||||
Assert.IsTrue(c2a.Rank == 1);
|
||||
Assert.IsTrue(c2a.ContainsVector(new C2(2 - 2 * ii, 2 + 2 * ii)));
|
||||
Assert.IsTrue(!c2a.ContainsVector(new C2(1 + ii, 0)));
|
||||
C2Space c2ac = c2a.OrthogonalComplementSpace;
|
||||
Assert.IsTrue(c2ac.ContainsVector(new C2(ii, 1)));
|
||||
}
|
||||
[Test]
|
||||
public static void Dim3Test()
|
||||
{
|
||||
R3Space r3a = new R3Space(new List<R3>() { new R3(1, 1, 1), new R3(1, 1, 0) });
|
||||
Assert.IsTrue(r3a.Rank == 2);
|
||||
Assert.IsTrue(r3a.ContainsVector(new R3(2,2,1)));
|
||||
Assert.IsTrue(r3a.ContainsVector(new R3(3,3,3)));
|
||||
Assert.IsTrue(r3a.OrthogonalComplementSpace.ContainsVector(new R3(-2, 2, 0)));
|
||||
C3Space c3a = new C3Space(new List<C3>() { new C3(1 + ii, 1 - ii, ii), new C3(1, 0, 1) });
|
||||
Assert.IsTrue(c3a.Rank == 2);
|
||||
Assert.IsTrue(c3a.OrthogonalComplementSpace.Rank == 1);
|
||||
Assert.IsTrue(c3a.ContainsVector(new C3(2 + ii, 1 - ii, 1 + ii)));
|
||||
Assert.IsTrue(c3a.OrthogonalComplementSpace.ContainsVector(new C3(-2, 1-ii, 2)));
|
||||
}
|
||||
[Test]
|
||||
public static void Dim4Test()
|
||||
{
|
||||
|
||||
R4Space r4a = new R4Space(new List<R4>() { new R4(1, 1, 0, 0), new R4(0, 1, 0, 1) });
|
||||
Assert.IsTrue(r4a.Rank==2);
|
||||
Assert.IsTrue(r4a.OrthogonalComplementSpace.Rank==2);
|
||||
Assert.IsTrue(r4a.ContainsVector(new R4(1, 0, 0, -1)));
|
||||
Assert.IsTrue(r4a.OrthogonalComplementSpace.ContainsVector(new R4(0, 0, 1, 0)));
|
||||
Assert.IsTrue(r4a.OrthogonalComplementSpace.ContainsVector(new R4(1,-1,0,1)));
|
||||
C44 a = new C44(
|
||||
1, 0, 0, 0,
|
||||
0, 1, 0, 0,
|
||||
0, 0, 1, ii,
|
||||
0, 0, 0, 1
|
||||
);
|
||||
C44 b = new C44(
|
||||
ii, 1, -1, -ii,
|
||||
1, -1, 0, 0,
|
||||
ii, 0, 0, 0,
|
||||
0, 0, 0, 0
|
||||
);
|
||||
C4Space c4a = new C4Space(new List<C4>()
|
||||
{
|
||||
new C4(ii, 1, -1, -ii),
|
||||
new C4(1, -1, 0, 0),
|
||||
new C4(ii, 0, 0, 0)
|
||||
});
|
||||
Assert.IsTrue(c4a.Rank == 3);
|
||||
Assert.IsTrue(c4a.OrthogonalComplementSpace.Rank == 1);
|
||||
Assert.IsTrue(c4a.ContainsVector(new C4(1+ii,-1,0,0)));
|
||||
Assert.IsTrue(c4a.ContainsVector(new C4(1+ii,0,-1, -ii)));
|
||||
Assert.IsTrue(c4a.ContainsVector(new C4(1+2*ii,0,-1, -ii)));
|
||||
Assert.IsTrue(c4a.OrthogonalComplementSpace.ContainsVector(new C4(0, 0, ii, 1)));
|
||||
|
||||
}
|
||||
|
||||
[Test]
|
||||
public static void ContainsVectorTest()
|
||||
{
|
||||
C3Space c3s = new (new C3[] { new(1, 4, 2), new(2, 4, 1) });
|
||||
Assert.IsFalse(c3s.ContainsVector(new (0.62469505d, -0.46852129, 0.62469505)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public static void UnionTest()
|
||||
{
|
||||
C3Space c3s1 = new (new C3[] { new(1, 4, 2) });
|
||||
C3Space c3s2 = new(new C3[] { new(2, 4, 1) });
|
||||
C3Space union = c3s1.UnionWith(c3s2);
|
||||
Assert.That(union.Rank, Is.EqualTo(2));
|
||||
Assert.IsTrue(union.ContainsVector(new(1, 4, 2)));
|
||||
Assert.IsTrue(union.ContainsVector(new(2, 4, 1)));
|
||||
Assert.IsTrue(union.ContainsVector(new (3, 8, 3)));
|
||||
Assert.IsFalse(union.ContainsVector(new(0.62469505d, -0.46852129, 0.62469505)));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public static void OrthogonalComplementTest()
|
||||
{
|
||||
C3Space space = new(new C3[] { new(1, -3d/4d, 1) });
|
||||
C3Space otcSpace = space.OrthogonalComplementSpace;
|
||||
Assert.IsTrue(otcSpace.ContainsVector(new(1, 4, 2)));
|
||||
Assert.IsTrue(otcSpace.ContainsVector(new(2, 4, 1)));
|
||||
Assert.That(otcSpace.Rank, Is.EqualTo(2));
|
||||
Assert.IsFalse(otcSpace.ContainsVector(new(0.62469505d, -0.46852129, 0.62469505)));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user