Fensalir/tests/Aquarium.Engine.Fractal.Tests/ZyphosNamingTests.cs
2026-05-23 18:54:26 +01:00

36 lines
1.2 KiB
C#

namespace Aquarium.Engine.Fractal.Tests;
public sealed class ZyphosNamingTests
{
[Fact]
public void ZyphosSourceDoesNotModelUmbrosAsMoon()
{
var root = FindRepositoryRoot();
var zyphosFiles = Directory.GetFiles(Path.Combine(root, "src", "Aquarium.Zyphos"), "*.*", SearchOption.AllDirectories)
.Where(path => path.EndsWith(".cs", StringComparison.Ordinal) || path.EndsWith(".hlsl", StringComparison.Ordinal))
.ToArray();
foreach (var file in zyphosFiles)
{
var text = File.ReadAllText(file);
Assert.DoesNotContain("Moon", text, StringComparison.Ordinal);
Assert.DoesNotContain("moon", text, StringComparison.Ordinal);
}
}
private static string FindRepositoryRoot()
{
var directory = new DirectoryInfo(AppContext.BaseDirectory);
while (directory is not null)
{
if (File.Exists(Path.Combine(directory.FullName, "Fensalir.sln")))
{
return directory.FullName;
}
directory = directory.Parent;
}
throw new DirectoryNotFoundException("Could not find Fensalir.sln.");
}
}