diff --git a/.idea/.idea.Skeleton.Test/.idea/.gitignore b/.idea/.idea.Skeleton.Test/.idea/.gitignore
new file mode 100644
index 0000000..2bd3a9b
--- /dev/null
+++ b/.idea/.idea.Skeleton.Test/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/projectSettingsUpdater.xml
+/.idea.Skeleton.Test.iml
+/modules.xml
+/contentModel.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.Skeleton.Test/.idea/encodings.xml b/.idea/.idea.Skeleton.Test/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.Skeleton.Test/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Skeleton.Test/.idea/indexLayout.xml b/.idea/.idea.Skeleton.Test/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.Skeleton.Test/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.Skeleton.Test/.idea/vcs.xml b/.idea/.idea.Skeleton.Test/.idea/vcs.xml
new file mode 100644
index 0000000..4cc9ecb
--- /dev/null
+++ b/.idea/.idea.Skeleton.Test/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.SkeletonTest.dir/.idea/.gitignore b/.idea/.idea.SkeletonTest.dir/.idea/.gitignore
new file mode 100644
index 0000000..de488c3
--- /dev/null
+++ b/.idea/.idea.SkeletonTest.dir/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/.idea.SkeletonTest.iml
+/contentModel.xml
+/modules.xml
+/projectSettingsUpdater.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.SkeletonTest.dir/.idea/encodings.xml b/.idea/.idea.SkeletonTest.dir/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.SkeletonTest.dir/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.SkeletonTest/.idea/.gitignore b/.idea/.idea.SkeletonTest/.idea/.gitignore
new file mode 100644
index 0000000..f21a577
--- /dev/null
+++ b/.idea/.idea.SkeletonTest/.idea/.gitignore
@@ -0,0 +1,13 @@
+# Default ignored files
+/shelf/
+/workspace.xml
+# Rider ignored files
+/contentModel.xml
+/projectSettingsUpdater.xml
+/.idea.SkeletonTest.iml
+/modules.xml
+# Editor-based HTTP Client requests
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/.idea/.idea.SkeletonTest/.idea/encodings.xml b/.idea/.idea.SkeletonTest/.idea/encodings.xml
new file mode 100644
index 0000000..df87cf9
--- /dev/null
+++ b/.idea/.idea.SkeletonTest/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.SkeletonTest/.idea/indexLayout.xml b/.idea/.idea.SkeletonTest/.idea/indexLayout.xml
new file mode 100644
index 0000000..7b08163
--- /dev/null
+++ b/.idea/.idea.SkeletonTest/.idea/indexLayout.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/.idea.SkeletonTest/.idea/vcs.xml b/.idea/.idea.SkeletonTest/.idea/vcs.xml
new file mode 100644
index 0000000..d5f14f0
--- /dev/null
+++ b/.idea/.idea.SkeletonTest/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/DependencyFix.sh b/DependencyFix.sh
index 3230696..678abde 100644
--- a/DependencyFix.sh
+++ b/DependencyFix.sh
@@ -1,5 +1,5 @@
-sed -i '/^Project.*"Skeleton".*/d' ./SkeletonTest.sln
-sed -i '/^EndProject$/d' ./SkeletonTest.sln
-sed -i '/^Project.*/aEndProject' ./SkeletonTest.sln
+sed -i '/^Project.*"Skeleton".*/d' ./Skeleton.Test.sln
+sed -i '/^EndProject$/d' ./Skeleton.Test.sln
+sed -i '/^Project.*/aEndProject' ./Skeleton.Test.sln
-sed -i '/.*ProjectReference.*/d' ./SkeletonTest.csproj
\ No newline at end of file
+sed -i '/.*ProjectReference.*/d' ./Skeleton.Test.csproj
\ No newline at end of file
diff --git a/SkeletonTest.csproj b/Skeleton.Test.csproj
similarity index 98%
rename from SkeletonTest.csproj
rename to Skeleton.Test.csproj
index e6c049d..87a6ab9 100644
--- a/SkeletonTest.csproj
+++ b/Skeleton.Test.csproj
@@ -5,6 +5,7 @@
enable
false
+
diff --git a/SkeletonTest.sln b/Skeleton.Test.sln
similarity index 89%
rename from SkeletonTest.sln
rename to Skeleton.Test.sln
index 552747d..7a23992 100644
--- a/SkeletonTest.sln
+++ b/Skeleton.Test.sln
@@ -1,6 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SkeletonTest", "SkeletonTest.csproj", "{58767D91-4AE1-43EB-9DBC-498EE84DE6AC}"
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Skeleton.Test", "Skeleton.Test.csproj", "{58767D91-4AE1-43EB-9DBC-498EE84DE6AC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Skeleton", "..\Skeleton\Skeleton.csproj", "{61DBA845-169F-473E-B084-09B6A0E3762C}"
EndProject
diff --git a/Skeleton.Test.sln.DotSettings.user b/Skeleton.Test.sln.DotSettings.user
new file mode 100644
index 0000000..d0fcbbe
--- /dev/null
+++ b/Skeleton.Test.sln.DotSettings.user
@@ -0,0 +1,7 @@
+
+ <SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <Solution />
+</SessionState>
+ <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/SkeletonTest.sln.DotSettings.user b/SkeletonTest.sln.DotSettings.user
new file mode 100644
index 0000000..9354dc2
--- /dev/null
+++ b/SkeletonTest.sln.DotSettings.user
@@ -0,0 +1,4 @@
+
+ <SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from <SkeletonTest>" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session">
+ <Project Location="/home/hzhang/RiderProjects/SkeletonTest" Presentation="<SkeletonTest>" />
+</SessionState>
\ No newline at end of file
diff --git a/tests/AffineSpaceTest.cs b/tests/AffineSpaceTest.cs
index 825602e..054ff60 100644
--- a/tests/AffineSpaceTest.cs
+++ b/tests/AffineSpaceTest.cs
@@ -2,10 +2,10 @@ using System.Numerics;
using Skeleton.Algebra.AffineSpaces;
using Skeleton.Algebra.DimensionProviders;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test;
-using AffineC2Space = Skeleton.Algebra.CategoryOf.OnField.FAffineSpace;
+using AffineC2Space = Algebra.CategoryOf.OnField.FAffineSpace;
public static class AffineSpaceTest
{
[Test]
diff --git a/tests/AlgebraMiscTest.cs b/tests/AlgebraMiscTest.cs
index cedbc89..1bc362f 100644
--- a/tests/AlgebraMiscTest.cs
+++ b/tests/AlgebraMiscTest.cs
@@ -4,7 +4,7 @@ using System.Numerics;
using Skeleton.Algebra.Extensions;
using Skeleton.Analysis.AnalyticFunctions.Polynomials.Implements;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class AlgebraMiscTest
{
diff --git a/tests/CacheItemTest.cs b/tests/CacheItemTest.cs
index 578de00..daa5fae 100644
--- a/tests/CacheItemTest.cs
+++ b/tests/CacheItemTest.cs
@@ -1,8 +1,9 @@
+using System;
using System.Collections.Generic;
using System.Linq;
using Skeleton.DataStructure;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class CacheItemTest
{
@@ -161,5 +162,33 @@ public static class CacheItemTest
Assert.That(a.BB.Get, Is.EqualTo(0));
Assert.That(b.BA.Get, Is.EqualTo(1));
}
+
+ [Test]
+ public static void Test4()
+ {
+ CacheItem x = new CacheItem(s => 1);
+ CacheItem w = new CacheItem(a => x.GetFrom(a) + x.GetFrom(a));
+ CacheItem g = new CacheItem(a => w.GetFrom(a) + w.GetFrom(a) + x.GetFrom(a));
+ Assert.That(g.Get, Is.EqualTo(5));
+ x.Assign(2);
+ Console.WriteLine(g.Get);
+ Assert.That(g.Get, Is.EqualTo(10));
+ }
+ [Test]
+ public static void Test5()
+ {
+ CacheItem x1 = new CacheItem(x => 1);
+ CacheItem x2 = new CacheItem(x => x1.GetFrom(x));
+ CacheItem x3 = new CacheItem(x => x2.GetFrom(x));
+ CacheItem x4 = new CacheItem(x => x3.GetFrom(x));
+
+ Console.WriteLine(x4.Get);
+ x1.Assign(3);
+ Assert.IsTrue(x2.Expired);
+ Assert.IsTrue(x3.Expired);
+ Assert.IsTrue(x4.Expired);
+ Console.WriteLine(x4.Get);
+
+ }
}
diff --git a/tests/CayleySU3Test.cs b/tests/CayleySU3Test.cs
index 30f8c93..e9080aa 100644
--- a/tests/CayleySU3Test.cs
+++ b/tests/CayleySU3Test.cs
@@ -5,7 +5,7 @@ using Skeleton.Algebra.Extensions;
using Skeleton.Samples;
using Skeleton.Utils;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public class CayleySU3Test
{
diff --git a/tests/CayleySU4Test.cs b/tests/CayleySU4Test.cs
index a032004..9f540e3 100644
--- a/tests/CayleySU4Test.cs
+++ b/tests/CayleySU4Test.cs
@@ -5,7 +5,7 @@ using Skeleton.Algebra.Extensions;
using Skeleton.Samples;
using Skeleton.Utils;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class CayleySU4Test
{
diff --git a/tests/CayleyTransformationTest.cs b/tests/CayleyTransformationTest.cs
index 3a14e11..0432ea5 100644
--- a/tests/CayleyTransformationTest.cs
+++ b/tests/CayleyTransformationTest.cs
@@ -4,7 +4,7 @@ using Skeleton.Algebra.Extensions;
using Skeleton.Samples;
using Skeleton.Utils;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class CayleyTransformationTest
{
diff --git a/tests/DecompositionTest.cs b/tests/DecompositionTest.cs
index 6d6b7f2..a4ed91a 100644
--- a/tests/DecompositionTest.cs
+++ b/tests/DecompositionTest.cs
@@ -7,7 +7,7 @@ using Skeleton.DataStructure.Packs.MatrixDecompositions;
using Skeleton.Samples;
using Skeleton.Utils;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class DecompositionTest
{
diff --git a/tests/DraftTest.cs b/tests/DraftTest.cs
index 1020bb3..30dc3da 100644
--- a/tests/DraftTest.cs
+++ b/tests/DraftTest.cs
@@ -1,4 +1,4 @@
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public class DraftTest
{
diff --git a/tests/EigenDecompositionTest.cs b/tests/EigenDecompositionTest.cs
index dace5af..4526f4d 100644
--- a/tests/EigenDecompositionTest.cs
+++ b/tests/EigenDecompositionTest.cs
@@ -5,7 +5,7 @@ using Skeleton.Algebra.Extensions;
using Skeleton.DataStructure.Packs.MatrixDecompositions;
using Skeleton.Samples;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public class EigenDecompositionTest
{
diff --git a/tests/EigenValueTest.cs b/tests/EigenValueTest.cs
index 53b840e..cc23091 100644
--- a/tests/EigenValueTest.cs
+++ b/tests/EigenValueTest.cs
@@ -3,7 +3,7 @@ using System.Numerics;
using Skeleton.Algebra.Matrices;
using Skeleton.Constants;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class EigenValueTest
{
diff --git a/tests/FieldStructureTest.cs b/tests/FieldStructureTest.cs
index 121e2a0..08a1f79 100644
--- a/tests/FieldStructureTest.cs
+++ b/tests/FieldStructureTest.cs
@@ -1,6 +1,6 @@
using Skeleton.Algebra.ScalarFieldStructure;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class FieldStructureTest
{
diff --git a/tests/JordanPowerTest.cs b/tests/JordanPowerTest.cs
index ce59a90..68afe1f 100644
--- a/tests/JordanPowerTest.cs
+++ b/tests/JordanPowerTest.cs
@@ -3,7 +3,7 @@ using System.Numerics;
using Skeleton.Samples;
using Skeleton.Utils.Helpers;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class JordanPowerTest
{
diff --git a/tests/LieSU3FastEigenValueTest.cs b/tests/LieSU3FastEigenValueTest.cs
index 5d3a9ab..818a1dd 100644
--- a/tests/LieSU3FastEigenValueTest.cs
+++ b/tests/LieSU3FastEigenValueTest.cs
@@ -3,7 +3,7 @@ using System.Collections.Generic;
using System.Numerics;
using Skeleton.Constants;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class LieSU3FastEigenValueTest
{
diff --git a/tests/LinkTest.cs b/tests/LinkTest.cs
index f71c242..09bbd4c 100644
--- a/tests/LinkTest.cs
+++ b/tests/LinkTest.cs
@@ -2,7 +2,7 @@ using System;
using System.Linq;
using Skeleton.DataStructure.Link;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class LinkTest
{
diff --git a/tests/MatrixExpLogTest.cs b/tests/MatrixExpLogTest.cs
index 2878761..ee21899 100644
--- a/tests/MatrixExpLogTest.cs
+++ b/tests/MatrixExpLogTest.cs
@@ -1,6 +1,6 @@
using Skeleton.Constants;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class MatrixExpLogTest
{
diff --git a/tests/MiscTest.cs b/tests/MiscTest.cs
index e61a2b3..eafe94e 100644
--- a/tests/MiscTest.cs
+++ b/tests/MiscTest.cs
@@ -1,6 +1,6 @@
using System;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class MiscTest
{
diff --git a/tests/MultiplicationTest.cs b/tests/MultiplicationTest.cs
index 14b4b4b..9d16d8c 100644
--- a/tests/MultiplicationTest.cs
+++ b/tests/MultiplicationTest.cs
@@ -1,7 +1,7 @@
using System;
using Skeleton.Constants;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class MultiplicationTest
{
diff --git a/tests/REFFTest.cs b/tests/REFFTest.cs
index d41ccfa..e4febae 100644
--- a/tests/REFFTest.cs
+++ b/tests/REFFTest.cs
@@ -1,7 +1,7 @@
using System;
using System.Numerics;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
///
///
diff --git a/tests/SUTestFix.cs b/tests/SUTestFix.cs
index 18fddf1..4baa30e 100644
--- a/tests/SUTestFix.cs
+++ b/tests/SUTestFix.cs
@@ -3,7 +3,7 @@ using System.Numerics;
using Skeleton.Algebra.Extensions;
using Skeleton.Constants;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class SUTestFix
{
diff --git a/tests/UnitaryMatrixFixTest.cs b/tests/UnitaryMatrixFixTest.cs
index d147b38..bc1b8b2 100644
--- a/tests/UnitaryMatrixFixTest.cs
+++ b/tests/UnitaryMatrixFixTest.cs
@@ -7,7 +7,7 @@ using Skeleton.DataStructure.Packs.MatrixDecompositions;
using Skeleton.Samples;
using Skeleton.Utils;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class UnitaryMatrixFixTest
{
diff --git a/tests/UnitaryTest.cs b/tests/UnitaryTest.cs
index 30ccd31..4da2d3e 100644
--- a/tests/UnitaryTest.cs
+++ b/tests/UnitaryTest.cs
@@ -5,7 +5,7 @@ using Skeleton.Samples;
using Skeleton.Utils;
using Skeleton.Utils.Helpers;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
public static class UnitaryTest
{
diff --git a/tests/VectorSpaceTest.cs b/tests/VectorSpaceTest.cs
index ec8386a..8219187 100644
--- a/tests/VectorSpaceTest.cs
+++ b/tests/VectorSpaceTest.cs
@@ -1,7 +1,7 @@
using System.Collections.Generic;
using System.Numerics;
-namespace SkeletonTest.tests;
+namespace Skeleton.Test.tests;
///
/// test for vector spaces