using System.Collections.Immutable; using Microsoft.Extensions.Logging.Abstractions; using StellaOps.Graph.Indexer.Analytics; namespace StellaOps.Graph.Indexer.Tests; public sealed class GraphAnalyticsPipelineTests { [Trait("Category", TestCategories.Unit)] [Fact] public async Task RunAsync_WritesClustersAndCentrality() { var snapshot = GraphAnalyticsTestData.CreateLinearSnapshot(); var provider = new InMemoryGraphSnapshotProvider(); provider.Enqueue(snapshot); using var metrics = new GraphAnalyticsMetrics(); using StellaOps.TestKit; var writer = new InMemoryGraphAnalyticsWriter(); var pipeline = new GraphAnalyticsPipeline( new GraphAnalyticsEngine(new GraphAnalyticsOptions()), provider, writer, metrics, NullLogger.Instance); await pipeline.RunAsync(new GraphAnalyticsRunContext(false), CancellationToken.None); Assert.Single(writer.ClusterWrites); Assert.Single(writer.CentralityWrites); Assert.Equal(snapshot.Nodes.Length, writer.ClusterWrites.Single().Assignments.Length); } }