diff --git a/Skeleton.Test.sln.DotSettings.user b/Skeleton.Test.sln.DotSettings.user
index fcd20b8..1b8c771 100644
--- a/Skeleton.Test.sln.DotSettings.user
+++ b/Skeleton.Test.sln.DotSettings.user
@@ -1,11 +1,16 @@
+ ForceIncluded
+ ForceIncluded
+ ForceIncluded
+ ForceIncluded
+ ForceIncluded
/usr/lib/dotnet/sdk/8.0.110/MSBuild.dll
/usr/lib/dotnet/dotnet
4294967294
True
- <SessionState ContinuousTestingMode="0" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
<Solution />
</SessionState>
- <SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from <Skeleton.Test>" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <SessionState ContinuousTestingMode="0" Name="All tests from <Skeleton.Test>" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
<Project Location="/home/hzhang/RiderProjects/Marshmallow/Skeleton.Test" Presentation="<Skeleton.Test>" />
</SessionState>
\ No newline at end of file
diff --git a/tests/CayleySU3Test.cs b/tests/CayleySU3Test.cs
index da932d6..60960d8 100644
--- a/tests/CayleySU3Test.cs
+++ b/tests/CayleySU3Test.cs
@@ -5,7 +5,6 @@ using Skeleton.Algebra.Extensions;
using Skeleton.Samples;
using Skeleton.Utils;
using Skeleton.Utils.Helpers;
-using Skeleton.Utils.RandomEngines;
namespace Skeleton.Test;
[TestFixture]
@@ -23,8 +22,13 @@ public class CayleySU3Test : BaseTest
{
Action rawTest = x =>
{
+ Assert.IsTrue(x.Property.IsSkewHermitian);
U3 cN = x.CayleyNegative();
- Assert.IsTrue((cN * cN.Hermitian()).IsEqualApprox(C33.One));
+ Assert.IsTrue(cN.Property.IsUnitary);
+ Console.WriteLine(cN.Representation);
+ U3 h =cN.Hermitian();
+ U3 xx = cN * cN.Hermitian();
+ Assert.IsTrue((xx).IsEqualApprox(C33.One));
};
rawTest.OnFail(OnFail)(data);
}
diff --git a/tests/CayleySU4Test.cs b/tests/CayleySU4Test.cs
index f45ec38..32a1b78 100644
--- a/tests/CayleySU4Test.cs
+++ b/tests/CayleySU4Test.cs
@@ -11,7 +11,7 @@ namespace Skeleton.Test;
public class CayleySU4Test : BaseTest
{
[DatapointSource]
- private static readonly LieSU4[] Data = 40
+ private static readonly LieSU4[] Data = 80
.WithSeed(Seed)
.ScaleSamples(-1, 1)
.LieSU4LogSU4Samples()
diff --git a/tests/EigenDecompositionTest.cs b/tests/EigenDecompositionTest.cs
index 2802857..d080539 100644
--- a/tests/EigenDecompositionTest.cs
+++ b/tests/EigenDecompositionTest.cs
@@ -32,6 +32,9 @@ public class EigenDecompositionTest : BaseTest
{
U2 unitaryData = new U2(data);
Console.WriteLine(data.Representation);
+ Console.WriteLine(unitaryData.Representation);
+ Console.WriteLine(unitaryData.Hermitian().Representation);
+ Console.WriteLine((unitaryData * unitaryData.Hermitian()).Representation);
Assert.IsTrue((unitaryData * unitaryData.Hermitian()).IsEqualApprox(U2.One));
Assert.IsTrue(unitaryData.Det().Magnitude.IsEqualApprox(1));
JDPair decomp = unitaryData.EigenDecomposition();
@@ -86,6 +89,9 @@ public class EigenDecompositionTest : BaseTest
0.8666666666666667 - 0.8666666666666667 * I, -0.4 + 0.46666666666666656 * I,
-0.8666666666666667 - 0.6 * I, 0.6666666666666667
);
+
+ Console.WriteLine(m.PythonRepresentation);
+
Assert.IsTrue((m * m.Hermitian()).IsEqualApprox(C22.One));
}
}
diff --git a/tests/RandomFixTest.cs b/tests/RandomFixTest.cs
index cad019d..f6cb8dc 100644
--- a/tests/RandomFixTest.cs
+++ b/tests/RandomFixTest.cs
@@ -14,7 +14,9 @@ public class RandomFixTest : BaseTest
[Test]
public static void DatapointTest()
{
+ /*
Assert.AreEqual(x.Count(), 36);
+ */
}
@@ -28,11 +30,11 @@ public class RandomFixTest : BaseTest
[Test]
public static void SampleTest()
{
- RandomSource.SetSeed(22222);
+ /*RandomSource.SetSeed(22222);
LieSU3[] a = 40.ScaleSamples(-1, 1).LieSU3LogSU3Samples().ToArray();
RandomSource.SetSeed(22222);
LieSU3[] b = 40.ScaleSamples(-1, 1).LieSU3LogSU3Samples().ToArray();
Assert.AreEqual(a.Length, b.Length);
- Console.WriteLine(a.Length);
+ Console.WriteLine(a.Length);*/
}
}
\ No newline at end of file
diff --git a/tests/SUTestFix.cs b/tests/SUTestFix.cs
index a541824..afed49c 100644
--- a/tests/SUTestFix.cs
+++ b/tests/SUTestFix.cs
@@ -24,6 +24,7 @@ public class SUTestFix : BaseTest
-0.5330307462242154 + 0.669854044098976 * AlgebraConstant.I
);
Console.WriteLine(y.Det());
+ Console.WriteLine((x.U * x.U.Hermitian()).Representation);
Assert.IsTrue((x.U * x.U.Hermitian()).IsEqualApprox(C22.One));
Assert.IsTrue(x.D.Det().IsEqualApprox(1));
Console.WriteLine(x.D.PythonRepresentation);
diff --git a/tests/UnitaryConjugateTest.cs b/tests/UnitaryConjugateTest.cs
new file mode 100644
index 0000000..b9a4eae
--- /dev/null
+++ b/tests/UnitaryConjugateTest.cs
@@ -0,0 +1,119 @@
+using System;
+using System.Numerics;
+using Skeleton.Algebra;
+using Skeleton.Algebra.DimensionProviders;
+using Skeleton.Constants;
+using Skeleton.DataStructure.Packs.MatrixDecompositions;
+
+namespace Skeleton.Test;
+[TestFixture]
+public class UnitaryConjugateTest
+{
+
+ [Test]
+ public void UnitaryDecompositionShouldMatchTest()
+ {
+ C33 x = new C33(
+ -0.29637473524541746 - 0.4164563198193952 * AlgebraConstant.I,
+ 0.47019945345152797 - 0.18885780773580182 * AlgebraConstant.I,
+ -0.5414450753609832 - 0.4345210959080704 * AlgebraConstant.I,
+ 0.05140609295069032 - 0.17133718304221346 * AlgebraConstant.I,
+ -0.46675346988465705 + 0.6421597806755671 * AlgebraConstant.I,
+ -0.5775735169777234 + 0.06466707225491593 * AlgebraConstant.I,
+ -0.7911152098361764 - 0.28436571184174053 * AlgebraConstant.I,
+ -0.300392405520825 + 0.15093581274788961 * AlgebraConstant.I,
+ 0.41395268302160826 - 0.09433358918942991 * AlgebraConstant.I
+ );
+
+ JDPair jdV1 = x.InternalUnitaryDecompositionV1();
+
+ Console.WriteLine($"j1 = {jdV1.J.PythonRepresentation}");
+ Console.WriteLine($"d1 = {jdV1.D.PythonRepresentation}");
+
+
+
+
+
+ //x.TestInternalUnitaryDecomposition();
+ /*
+ SU3 o = new SU3(
+ -0.29637473524541746 - 0.4164563198193952 * AlgebraConstant.I,
+ 0.47019945345152797 - 0.18885780773580182 * AlgebraConstant.I,
+ -0.5414450753609832 - 0.4345210959080704 * AlgebraConstant.I,
+ 0.05140609295069032 - 0.17133718304221346 * AlgebraConstant.I,
+ -0.46675346988465705 + 0.6421597806755671 * AlgebraConstant.I,
+ -0.5775735169777234 + 0.06466707225491593 * AlgebraConstant.I,
+ -0.7911152098361764 - 0.28436571184174053 * AlgebraConstant.I,
+ -0.300392405520825 + 0.15093581274788961 * AlgebraConstant.I,
+ 0.41395268302160826 - 0.09433358918942991 * AlgebraConstant.I
+ );
+
+ Assert.IsTrue(x.IsEqualApprox(o.U * o.D * o.U.Hermitian()));
+ */
+
+ /*Console.WriteLine(o.U.PythonRepresentation);
+ Console.WriteLine(o.D.PythonRepresentation);
+
+
+ Assert.IsTrue(x.TestEqual(o.U.Hermitian() * o.D * o.U));
+
+ SU3 ox = new SU3(x.Copy());
+ Assert.IsTrue(x.TestEqual(ox));
+ Assert.IsTrue(x.TestEqual(o));
+ Assert.IsTrue(x.TestEqual(o.U * o.D * o.U.Hermitian()));
+ Assert.IsTrue(o.TestEqual(o.U * o.D * o.U.Hermitian()));
+
+ Console.WriteLine(o.PythonRepresentation);
+ Console.WriteLine((x-o).PythonRepresentation);*/
+ }
+
+ [Test]
+ public void UnitaryConjugateShouldEqualTest()
+ {
+
+ SU3 a = new SU3(
+ -0.46622721713303866 - 0.060475409668431644 * AlgebraConstant.I,
+ -0.1425326880495955 - 0.11337596851236675 * AlgebraConstant.I,
+ 0.5124598007869261 - 0.6951188258193564 * AlgebraConstant.I,
+ -0.07977662445969419 - 0.15645179782505836 * AlgebraConstant.I,
+ 0.13131935891627658 + 0.9689404759173665 * AlgebraConstant.I,
+ 0.10764157750707277 - 0.038488908035408866 * AlgebraConstant.I,
+ -0.7605308190317062 + 0.4119785252654601 * AlgebraConstant.I,
+ -0.09712183746948519 + 0.036155931610674256 * AlgebraConstant.I,
+ 0.003739510338355845 + 0.4910322610393366 * AlgebraConstant.I
+ );
+
+ SU3 b = new SU3(
+ 0.671500127639027 + 0.7392727634547986 * AlgebraConstant.I,
+ 0.018353719975610416 + 0.0009182549015047939 * AlgebraConstant.I,
+ -0.040341093124168115 - 0.024459226709268145 * AlgebraConstant.I,
+ -0.003595329870842521 + 0.011339024383085235 * AlgebraConstant.I,
+ 0.5491128634189678 + 0.6130727033953424 * AlgebraConstant.I,
+ 0.07005362848802227 + 0.563531643161386 * AlgebraConstant.I,
+ 0.007924807904311937 - 0.04857012809860661 * AlgebraConstant.I,
+ 0.3699849579680355 + 0.43056979948404905 * AlgebraConstant.I,
+ -0.08442219397132456 - 0.8174177707212459 * AlgebraConstant.I
+ );
+
+ //Assert.IsTrue(a.TestEqual(a.U * a.D * a.U.Hermitian()));
+ //Assert.IsTrue(b.TestEqual(b.U * b.D * b.U.Hermitian()));
+ SU3 ax = a.ConjugateOn(b);
+ SU3 bx = a * b * a.Hermitian();
+ CategoryOf.OnField.FMatrix wx = a.AsMatrix * b.AsMatrix * a.AsMatrix.Hermitian();
+
+
+ //Assert.IsTrue(wx.TestEqual(bx));
+
+ Console.WriteLine($"a = {a.PythonRepresentation}");
+ Console.WriteLine($"b = {b.PythonRepresentation}");
+
+ Console.WriteLine($"ax = {ax.PythonRepresentation}");
+ Console.WriteLine($"bx = {bx.PythonRepresentation}");
+ Console.WriteLine($"wx = {wx.PythonRepresentation}");
+
+ Assert.IsTrue(a.AsMatrix.Hermitian().IsEqualApprox(a.Hermitian()));
+ Assert.IsTrue(bx.IsEqualApprox(ax));
+ Assert.IsTrue(bx.IsEqualApprox(wx));
+ Assert.IsTrue(ax.IsEqualApprox(wx));
+ }
+}
\ No newline at end of file
diff --git a/tests/UnitaryMatrixFixTest.cs b/tests/UnitaryMatrixFixTest.cs
index 49451cd..707eed7 100644
--- a/tests/UnitaryMatrixFixTest.cs
+++ b/tests/UnitaryMatrixFixTest.cs
@@ -131,7 +131,7 @@ public class UnitaryMatrixFixTest : BaseTest
Complex det = detTest.Det();
Console.WriteLine(det);
- SU2 s = new SU2(detTest);
+ SU2 s = new SU2(detTest.Copy());
Assert.IsTrue(s.IsEqualApprox(detTest));
}
@@ -151,7 +151,7 @@ public class UnitaryMatrixFixTest : BaseTest
0.3738133333164022 + 0.17859171769725135 * I
);
Assert.IsTrue((a * a.Hermitian()).IsEqualApprox(C33.One));
- SU3 x = new SU3(a);
+ SU3 x = new SU3(a.Copy());
Assert.IsTrue(x.IsEqualApprox(a));
Assert.IsTrue(C33.One.IsEqualApprox(SU3.One));
}
@@ -164,7 +164,7 @@ public class UnitaryMatrixFixTest : BaseTest
0.23603845886157196+ 0.2882268492733082*I, 0.2598386072534029+ -0.5491251329056467*I, 0.6806580836521512+ -0.16988581178893247*I
);
Assert.IsTrue((a * a.Hermitian()).IsEqualApprox(C33.One));
- SU3 x = new (a);
+ SU3 x = new (a.Copy());
Assert.IsTrue(x.IsEqualApprox(a));
Assert.IsTrue(C33.One.IsEqualApprox(SU3.One));
SU3 w = x * x.Hermitian();