Net.Like.Xue.Tokyo/Assets/BITKit/UnityPluginsSupport/Tests/StringTest.cs

142 lines
4.3 KiB
C#
Raw Normal View History

2024-11-03 16:42:23 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using NUnit.Framework;
using UnityEngine;
using System.Text;
using UnityEngine.TestTools;
using System.Linq;
namespace BITKit
{
public class StringTest
{
[Test]
public void JoinString()
{
List<string> stringList = new()
{
"UX",
"Test",
"Creator"
};
Debug.Log(string.Join("/",stringList));
}
[Test]
public void SpliteNamespace()
{
StringBuilder stringBuilder = new StringBuilder();
List<string> ignoreNamespaces = new()
{
"System",
"UnityEngine",
"Unity",
"Microsoft",
"UnityEditor",
"Google",
"Mono",
"ZXing",
"ImmersiveVRTools",
"MonKey",
"FLib",
"Kcp",
"Udx",
"Sirenix",
"TMPro",
"RotaryHeart",
"Cinemachine",
"ParadoxNotion",
"Net",
"VSCodeEditor",
"AOT",
"UnityEditorInternal",
"UnityEngineInternal",
"JetBrains",
"Bee",
"NotInvited",
"HighlightPlus",
"DG",
"Hierarchy2",
"Cysharp",
"JetBrains",
"Packages",
"Newtonsoft_X",
"Binding",
"NodeCanvas",
"SaveDuringPlay",
"LimWorks",
"MagicaCloth2",
"FastScriptReload",
"ParrelSync",
"KinematicCharacterController",
"LimWorksEditor",
"BuildComponent",
"dnlib",
"BigIntegerLibrary",
"Ionic",
"log4net",
"DG",
"ImmersiveVrToolsCommon",
"NUnit",
"HarmonyLib",
"MonoMod",
"WebDav",
"PlasticGui",
"Codice",
"GluonGui",
"PlasticPipe",
"XDiffGui",
"MacFsWatcher",
"MacUI",
"PlayerBuildProgramLibrary",
"ExCSS",
"ScriptCompilationBuildProgram",
"BeeBuildProgramCommon",
"Accessibility",
"CodiceApp",
"Newtonsoft",
"MergetoolGui",
"TreeEditor",
"MackySoft",
"FullscreenEditor",
};
var allTypes =new List<Type>();
var supportTypes=new List<Type>();
foreach (var assembly in AppDomain.CurrentDomain.GetAssemblies())
{
try
{
allTypes.AddRange(assembly.GetExportedTypes());
}
catch
{
continue;
}
}
stringBuilder.AppendLine($"以获取到类型:{allTypes.Count()}个");
foreach (var type in allTypes)
{
var typeName = type.Name;
var nameSpace = type.Namespace;
var rootNamespace =string.IsNullOrEmpty(nameSpace)?string.Empty : nameSpace.Split(@".").First();
var contrast = ignoreNamespaces.Contains(rootNamespace);
//stringBuilder.AppendLine($"类型名称:{typeName}\t命名空间{nameSpace}\t根命名空间:{rootNamespace}\t对比结果:{contrast}");
if(contrast)
{
}
else
{
supportTypes.Add(type);
}
}
stringBuilder.AppendLine($"所有类型{allTypes.Count()}个\t支持类型{supportTypes.Count}");
stringBuilder.AppendLine("已支持的命名空间:");
foreach (var x in supportTypes.Select(x=>x.Namespace).Distinct())
{
stringBuilder.AppendLine(x);
}
Debug.Log(stringBuilder);
}
}
}