35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
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<GraphAnalyticsPipeline>.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);
|
|
}
|
|
}
|