// Tests for bulk update functionality using System; using AIBrain.Scripts; using Xunit; namespace AIBrain.Tests { public class TestBulkUpdate { [Fact] public void TestExecuteBulkUpdatesDryRun() { var result = BulkUpdate.ExecuteBulkUpdates( iterations: 100, batchSize: 10, dryRun: true ); Assert.NotNull(result); Assert.True(result.DryRun); Assert.True(result.ExecutedIterations > 0); Assert.True(result.SampleRuntimeSeconds > 0); } [Fact] public void TestBulkUpdatePlanToDict() { var plan = new BulkUpdatePlan { Iterations = 1000, BatchSize = 100, ExecutedIterations = 5, DryRun = true, SampleRuntimeSeconds = 1.5, EstimatedTotalRuntimeSeconds = 300.0 }; var dict = plan.ToDict(); Assert.Equal(1000, dict["iterations"]); Assert.Equal(100, dict["batch_size"]); Assert.Equal(5, dict["executed_iterations"]); Assert.True((bool)dict["dry_run"]); } [Fact] public void TestInvalidIterations() { Assert.Throws(() => BulkUpdate.ExecuteBulkUpdates(iterations: 0) ); } } }