Files
huanld 1686f08040
Release pipeline / Get version (push) Has been cancelled
Release pipeline / Get Chart Name (push) Has been cancelled
Release pipeline / tests (push) Has been cancelled
Release pipeline / builds (push) Has been cancelled
Release pipeline / builds-ghcr (push) Has been cancelled
Release pipeline / test-deployments (push) Has been cancelled
Release pipeline / deploy (push) Has been cancelled
Release pipeline / Helm chart oci (push) Has been cancelled
Release pipeline / npm (push) Has been cancelled
Release pipeline / snyk (push) Has been cancelled
feat: commit IFC-toolkit and engine_web-ifc source code
2026-04-16 07:47:58 +07:00

50 lines
1.9 KiB
C#

using Ara3D.IfcLoader;
using Ara3D.Logging;
using Ara3D.Utils;
using NUnit.Framework;
using static Ara3D.IfcParser.Test.Config;
namespace Ara3D.IfcParser.Test
{
public static class IfcLoadTests
{
public static IReadOnlyList<FilePath> Files = Config.Files;
[Test, Explicit("Takes a long time to run")]
[TestCaseSource(nameof(Files))]
public static void TestIfcFile(FilePath fp)
{
var logger = CreateLogger();
var (rd, file) = RunDetails.LoadGraph(fp, true, logger);
OutputDetails(file, logger);
Console.WriteLine(rd.Header());
Console.WriteLine(rd.RowData());
}
[Test]
[TestCaseSource(nameof(Files))]
public static void TestIfcFileWithoutGeometry(FilePath fp)
{
var logger = CreateLogger();
var (rd, file) = RunDetails.LoadGraph(fp, false, logger);
OutputDetails(file, logger);
Console.WriteLine(rd.Header());
Console.WriteLine(rd.RowData());
}
public static void OutputDetails(IfcFile file, ILogger logger)
{
logger.Log($"Loaded {file.FilePath.GetFileName()}");
logger.Log($"Graph nodes: {file.Graph.Nodes.Count}");
logger.Log($"Graph relations: {file.Graph.Relations.Count}");
logger.Log($"Graph roots: {file.Graph.RootIds.Count}");
logger.Log($"Property sets: {file.Graph.GetPropSets().Count()}");
logger.Log($"Property values: {file.Graph.GetProps().Count()}");
logger.Log($"Express ids: {file.Document.NumRawInstances}");
logger.Log($"Geometry loaded: {file.GeometryDataLoaded}");
logger.Log($"Num geometries loaded: {file.Model?.GetNumGeometries()}");
logger.Log($"Num meshes loaded: {file.Model?.GetGeometries().Select(g => g.GetNumMeshes()).Sum()}");
}
}
}