diff --git a/.gitmodules b/.gitmodules
index cca4cf19..71d98acf 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -1,3 +1,3 @@
-[submodule "BetterGenshinImpact/Script"]
- path = BetterGenshinImpact/Script
- url = https://github.com/babalae/bettergi-scripts.git
+[submodule "Test/BetterGenshinImpact.UnitTest/Assets"]
+ path = Test/BetterGenshinImpact.UnitTest/Assets
+ url = https://github.com/huiyadanli/BetterGI.UnitTest.Assets.git
diff --git a/BetterGenshinImpact.sln b/BetterGenshinImpact.sln
index 4d1709c8..f6624165 100644
--- a/BetterGenshinImpact.sln
+++ b/BetterGenshinImpact.sln
@@ -15,10 +15,14 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MicaSetup", "Build\MicaSetu
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MicaSetup.Uninst", "Build\MicaSetup\MicaSetup.Uninst.csproj", "{673344BC-B860-44AE-AD88-D33465BDE25B}"
EndProject
-Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BetterGenshinImpact.Test", "BetterGenshinImpact.Test\BetterGenshinImpact.Test.csproj", "{27AF227E-BE44-450F-8E95-C1AD4FDE14BE}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "BetterGenshinImpact.Test", "Test\BetterGenshinImpact.Test\BetterGenshinImpact.Test.csproj", "{27AF227E-BE44-450F-8E95-C1AD4FDE14BE}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Fischless.WindowsInput", "Fischless.WindowsInput\Fischless.WindowsInput.csproj", "{9D00BC7A-9280-4AC9-8951-4502EDB71B76}"
EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Test", "Test", "{02CEA57F-C24B-40F9-AF31-F1D4F3BDB4BF}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BetterGenshinImpact.UnitTest", "Test\BetterGenshinImpact.UnitTest\BetterGenshinImpact.UnitTest.csproj", "{7DA575C0-8D1E-4BD2-AEDB-5471D8906B98}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -67,14 +71,14 @@ Global
{673344BC-B860-44AE-AD88-D33465BDE25B}.Release|Any CPU.Build.0 = Release|Any CPU
{673344BC-B860-44AE-AD88-D33465BDE25B}.Release|x64.ActiveCfg = Release|x64
{673344BC-B860-44AE-AD88-D33465BDE25B}.Release|x64.Build.0 = Release|x64
- {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
- {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Debug|Any CPU.Build.0 = Debug|Any CPU
- {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Debug|x64.ActiveCfg = Debug|Any CPU
- {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Debug|x64.Build.0 = Debug|Any CPU
- {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Release|Any CPU.ActiveCfg = Release|Any CPU
- {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Release|Any CPU.Build.0 = Release|Any CPU
- {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Release|x64.ActiveCfg = Release|Any CPU
- {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Release|x64.Build.0 = Release|Any CPU
+ {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Debug|Any CPU.Build.0 = Debug|x64
+ {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Debug|x64.ActiveCfg = Debug|x64
+ {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Debug|x64.Build.0 = Debug|x64
+ {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Release|Any CPU.ActiveCfg = Release|x64
+ {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Release|Any CPU.Build.0 = Release|x64
+ {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Release|x64.ActiveCfg = Release|x64
+ {27AF227E-BE44-450F-8E95-C1AD4FDE14BE}.Release|x64.Build.0 = Release|x64
{9D00BC7A-9280-4AC9-8951-4502EDB71B76}.Debug|Any CPU.ActiveCfg = Debug|x64
{9D00BC7A-9280-4AC9-8951-4502EDB71B76}.Debug|Any CPU.Build.0 = Debug|x64
{9D00BC7A-9280-4AC9-8951-4502EDB71B76}.Debug|x64.ActiveCfg = Debug|x64
@@ -83,6 +87,14 @@ Global
{9D00BC7A-9280-4AC9-8951-4502EDB71B76}.Release|Any CPU.Build.0 = Release|x64
{9D00BC7A-9280-4AC9-8951-4502EDB71B76}.Release|x64.ActiveCfg = Release|x64
{9D00BC7A-9280-4AC9-8951-4502EDB71B76}.Release|x64.Build.0 = Release|x64
+ {7DA575C0-8D1E-4BD2-AEDB-5471D8906B98}.Debug|Any CPU.ActiveCfg = Debug|x64
+ {7DA575C0-8D1E-4BD2-AEDB-5471D8906B98}.Debug|Any CPU.Build.0 = Debug|x64
+ {7DA575C0-8D1E-4BD2-AEDB-5471D8906B98}.Debug|x64.ActiveCfg = Debug|x64
+ {7DA575C0-8D1E-4BD2-AEDB-5471D8906B98}.Debug|x64.Build.0 = Debug|x64
+ {7DA575C0-8D1E-4BD2-AEDB-5471D8906B98}.Release|Any CPU.ActiveCfg = Release|x64
+ {7DA575C0-8D1E-4BD2-AEDB-5471D8906B98}.Release|Any CPU.Build.0 = Release|x64
+ {7DA575C0-8D1E-4BD2-AEDB-5471D8906B98}.Release|x64.ActiveCfg = Release|x64
+ {7DA575C0-8D1E-4BD2-AEDB-5471D8906B98}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -90,6 +102,8 @@ Global
GlobalSection(NestedProjects) = preSolution
{AB85DA23-EB8F-4FBF-A7FA-35CE05B23C15} = {458E1106-43A4-47E6-B11B-D243035D4C76}
{673344BC-B860-44AE-AD88-D33465BDE25B} = {458E1106-43A4-47E6-B11B-D243035D4C76}
+ {7DA575C0-8D1E-4BD2-AEDB-5471D8906B98} = {02CEA57F-C24B-40F9-AF31-F1D4F3BDB4BF}
+ {27AF227E-BE44-450F-8E95-C1AD4FDE14BE} = {02CEA57F-C24B-40F9-AF31-F1D4F3BDB4BF}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {352D8B78-9DE3-4E58-985F-FADD22594DB4}
diff --git a/BetterGenshinImpact.Test/App.xaml b/Test/BetterGenshinImpact.Test/App.xaml
similarity index 100%
rename from BetterGenshinImpact.Test/App.xaml
rename to Test/BetterGenshinImpact.Test/App.xaml
diff --git a/BetterGenshinImpact.Test/App.xaml.cs b/Test/BetterGenshinImpact.Test/App.xaml.cs
similarity index 100%
rename from BetterGenshinImpact.Test/App.xaml.cs
rename to Test/BetterGenshinImpact.Test/App.xaml.cs
diff --git a/BetterGenshinImpact.Test/AssemblyInfo.cs b/Test/BetterGenshinImpact.Test/AssemblyInfo.cs
similarity index 100%
rename from BetterGenshinImpact.Test/AssemblyInfo.cs
rename to Test/BetterGenshinImpact.Test/AssemblyInfo.cs
diff --git a/BetterGenshinImpact.Test/BetterGenshinImpact.Test.csproj b/Test/BetterGenshinImpact.Test/BetterGenshinImpact.Test.csproj
similarity index 81%
rename from BetterGenshinImpact.Test/BetterGenshinImpact.Test.csproj
rename to Test/BetterGenshinImpact.Test/BetterGenshinImpact.Test.csproj
index 94f70e0d..e3bd79ba 100644
--- a/BetterGenshinImpact.Test/BetterGenshinImpact.Test.csproj
+++ b/Test/BetterGenshinImpact.Test/BetterGenshinImpact.Test.csproj
@@ -13,7 +13,7 @@
-
+
\ No newline at end of file
diff --git a/BetterGenshinImpact.Test/Dataset/AvatarClassifyGen.cs b/Test/BetterGenshinImpact.Test/Dataset/AvatarClassifyGen.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Dataset/AvatarClassifyGen.cs
rename to Test/BetterGenshinImpact.Test/Dataset/AvatarClassifyGen.cs
diff --git a/BetterGenshinImpact.Test/Dataset/AvatarClassifyTransparentGen.cs b/Test/BetterGenshinImpact.Test/Dataset/AvatarClassifyTransparentGen.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Dataset/AvatarClassifyTransparentGen.cs
rename to Test/BetterGenshinImpact.Test/Dataset/AvatarClassifyTransparentGen.cs
diff --git a/BetterGenshinImpact.Test/MainWindow.xaml b/Test/BetterGenshinImpact.Test/MainWindow.xaml
similarity index 100%
rename from BetterGenshinImpact.Test/MainWindow.xaml
rename to Test/BetterGenshinImpact.Test/MainWindow.xaml
diff --git a/BetterGenshinImpact.Test/MainWindow.xaml.cs b/Test/BetterGenshinImpact.Test/MainWindow.xaml.cs
similarity index 100%
rename from BetterGenshinImpact.Test/MainWindow.xaml.cs
rename to Test/BetterGenshinImpact.Test/MainWindow.xaml.cs
diff --git a/BetterGenshinImpact.Test/Simple/AllMap/BigMapMatchTest.cs b/Test/BetterGenshinImpact.Test/Simple/AllMap/BigMapMatchTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/AllMap/BigMapMatchTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/AllMap/BigMapMatchTest.cs
diff --git a/BetterGenshinImpact.Test/Simple/AllMap/EntireMapTest.cs b/Test/BetterGenshinImpact.Test/Simple/AllMap/EntireMapTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/AllMap/EntireMapTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/AllMap/EntireMapTest.cs
diff --git a/BetterGenshinImpact.Test/Simple/AllMap/FeatureTransfer.cs b/Test/BetterGenshinImpact.Test/Simple/AllMap/FeatureTransfer.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/AllMap/FeatureTransfer.cs
rename to Test/BetterGenshinImpact.Test/Simple/AllMap/FeatureTransfer.cs
diff --git a/BetterGenshinImpact.Test/Simple/AllMap/KeyPointMatchTest.cs b/Test/BetterGenshinImpact.Test/Simple/AllMap/KeyPointMatchTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/AllMap/KeyPointMatchTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/AllMap/KeyPointMatchTest.cs
diff --git a/BetterGenshinImpact.Test/Simple/AllMap/LargeSIFTExtractor.cs b/Test/BetterGenshinImpact.Test/Simple/AllMap/LargeSIFTExtractor.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/AllMap/LargeSIFTExtractor.cs
rename to Test/BetterGenshinImpact.Test/Simple/AllMap/LargeSIFTExtractor.cs
diff --git a/BetterGenshinImpact.Test/Simple/AllMap/MapPuzzle.cs b/Test/BetterGenshinImpact.Test/Simple/AllMap/MapPuzzle.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/AllMap/MapPuzzle.cs
rename to Test/BetterGenshinImpact.Test/Simple/AllMap/MapPuzzle.cs
diff --git a/BetterGenshinImpact.Test/Simple/AllMap/MapTeleportPointDraw.cs b/Test/BetterGenshinImpact.Test/Simple/AllMap/MapTeleportPointDraw.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/AllMap/MapTeleportPointDraw.cs
rename to Test/BetterGenshinImpact.Test/Simple/AllMap/MapTeleportPointDraw.cs
diff --git a/BetterGenshinImpact.Test/Simple/AllMap/MatchTemplateTest.cs b/Test/BetterGenshinImpact.Test/Simple/AllMap/MatchTemplateTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/AllMap/MatchTemplateTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/AllMap/MatchTemplateTest.cs
diff --git a/BetterGenshinImpact.Test/Simple/AutoCookTest.cs b/Test/BetterGenshinImpact.Test/Simple/AutoCookTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/AutoCookTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/AutoCookTest.cs
diff --git a/BetterGenshinImpact.Test/Simple/HsvTestWindow.cs b/Test/BetterGenshinImpact.Test/Simple/HsvTestWindow.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/HsvTestWindow.cs
rename to Test/BetterGenshinImpact.Test/Simple/HsvTestWindow.cs
diff --git a/BetterGenshinImpact.Test/Simple/MiniMap/CameraOrientationTest.cs b/Test/BetterGenshinImpact.Test/Simple/MiniMap/CameraOrientationTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/MiniMap/CameraOrientationTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/MiniMap/CameraOrientationTest.cs
diff --git a/BetterGenshinImpact.Test/Simple/MiniMap/CharacterOrientationTest.cs b/Test/BetterGenshinImpact.Test/Simple/MiniMap/CharacterOrientationTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/MiniMap/CharacterOrientationTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/MiniMap/CharacterOrientationTest.cs
diff --git a/BetterGenshinImpact.Test/Simple/OcrTest.cs b/Test/BetterGenshinImpact.Test/Simple/OcrTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/OcrTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/OcrTest.cs
diff --git a/BetterGenshinImpact.Test/Simple/ScaleTest.cs b/Test/BetterGenshinImpact.Test/Simple/ScaleTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/ScaleTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/ScaleTest.cs
diff --git a/BetterGenshinImpact.Test/Simple/Track/MapPathTest.cs b/Test/BetterGenshinImpact.Test/Simple/Track/MapPathTest.cs
similarity index 100%
rename from BetterGenshinImpact.Test/Simple/Track/MapPathTest.cs
rename to Test/BetterGenshinImpact.Test/Simple/Track/MapPathTest.cs
diff --git a/BetterGenshinImpact.Test/View/CameraRecViewModel.cs b/Test/BetterGenshinImpact.Test/View/CameraRecViewModel.cs
similarity index 100%
rename from BetterGenshinImpact.Test/View/CameraRecViewModel.cs
rename to Test/BetterGenshinImpact.Test/View/CameraRecViewModel.cs
diff --git a/BetterGenshinImpact.Test/View/CameraRecWindow.xaml b/Test/BetterGenshinImpact.Test/View/CameraRecWindow.xaml
similarity index 100%
rename from BetterGenshinImpact.Test/View/CameraRecWindow.xaml
rename to Test/BetterGenshinImpact.Test/View/CameraRecWindow.xaml
diff --git a/BetterGenshinImpact.Test/View/CameraRecWindow.xaml.cs b/Test/BetterGenshinImpact.Test/View/CameraRecWindow.xaml.cs
similarity index 100%
rename from BetterGenshinImpact.Test/View/CameraRecWindow.xaml.cs
rename to Test/BetterGenshinImpact.Test/View/CameraRecWindow.xaml.cs
diff --git a/Test/BetterGenshinImpact.UnitTest/Assets b/Test/BetterGenshinImpact.UnitTest/Assets
new file mode 160000
index 00000000..15589226
--- /dev/null
+++ b/Test/BetterGenshinImpact.UnitTest/Assets
@@ -0,0 +1 @@
+Subproject commit 1558922654db149d90d5d52b8a603c445bad31ff
diff --git a/Test/BetterGenshinImpact.UnitTest/BetterGenshinImpact.UnitTest.csproj b/Test/BetterGenshinImpact.UnitTest/BetterGenshinImpact.UnitTest.csproj
new file mode 100644
index 00000000..f0f899fa
--- /dev/null
+++ b/Test/BetterGenshinImpact.UnitTest/BetterGenshinImpact.UnitTest.csproj
@@ -0,0 +1,27 @@
+
+
+
+ net8.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Test/BetterGenshinImpact.UnitTest/UnitTest1.cs b/Test/BetterGenshinImpact.UnitTest/UnitTest1.cs
new file mode 100644
index 00000000..89947f9d
--- /dev/null
+++ b/Test/BetterGenshinImpact.UnitTest/UnitTest1.cs
@@ -0,0 +1,9 @@
+namespace BetterGenshinImpact.UnitTest;
+
+public class UnitTest1
+{
+ [Fact]
+ public void Test1()
+ {
+ }
+}
\ No newline at end of file