feat(render): implement Campaign AR and terrain fidelity

This commit is contained in:
Erik 2026-08-22 13:13:29 +02:00
parent 99cf26e00c
commit 7a5f96ede5
368 changed files with 50611 additions and 950 deletions

View file

@ -117,6 +117,60 @@ public sealed class ApplicationPathSetTests
paths.LegacyConfigDirectory);
}
[Fact]
public void CrossPlatformEnvironmentOverridesIsolateAllMutableUserState()
{
string root = Path.GetFullPath(
Path.Combine(Path.GetTempPath(), "acdream-isolated-automation"));
var platform = new FixtureEnvironment(isWindows: true)
{
CurrentDirectoryValue = root,
ApplicationData = Path.Combine(root, "real-roaming"),
LocalApplicationData = Path.Combine(root, "real-local"),
Variables =
{
["ACDREAM_CONFIG_DIR"] = "capture-config",
["ACDREAM_DATA_DIR"] = "capture-data",
["ACDREAM_CACHE_DIR"] = "capture-cache",
},
};
ApplicationPathSet paths = ApplicationPathSet.Resolve(platform: platform);
Assert.Equal(Path.Combine(root, "capture-config"), paths.ConfigDirectory);
Assert.Equal(Path.Combine(root, "capture-data"), paths.DataDirectory);
Assert.Equal(Path.Combine(root, "capture-cache"), paths.CacheDirectory);
Assert.Null(paths.LegacyConfigDirectory);
}
[Fact]
public void ExplicitArgumentsOverrideAutomationEnvironmentRoots()
{
string root = Path.GetFullPath(
Path.Combine(Path.GetTempPath(), "acdream-explicit-paths"));
var platform = new FixtureEnvironment(isWindows: false)
{
CurrentDirectoryValue = root,
UserProfile = Path.Combine(root, "home"),
Variables =
{
["ACDREAM_CONFIG_DIR"] = "environment-config",
["ACDREAM_DATA_DIR"] = "environment-data",
["ACDREAM_CACHE_DIR"] = "environment-cache",
},
};
ApplicationPathSet paths = ApplicationPathSet.Resolve(
"explicit-config",
"explicit-data",
"explicit-cache",
platform);
Assert.Equal(Path.Combine(root, "explicit-config"), paths.ConfigDirectory);
Assert.Equal(Path.Combine(root, "explicit-data"), paths.DataDirectory);
Assert.Equal(Path.Combine(root, "explicit-cache"), paths.CacheDirectory);
}
private sealed class FixtureEnvironment(bool isWindows)
: IApplicationPathEnvironment
{