test(historian): pin Uncertain-input degradation (T1 review)
Two Sql.Common tests close review finding I-1: an Uncertain NEXT neighbour makes an AtTime interpolation Uncertain, and an Uncertain (non-Bad) sample in a bucket makes the aggregate Uncertain. Each falsified with the reviewer's surviving mutation. Claude-Session: https://claude.ai/code/session_01Ef2ozxS7QPanGT8uoATbTe
This commit is contained in:
+10
@@ -119,4 +119,14 @@ public sealed class AggregateEvaluatorTests
|
||||
AggregateEvaluator.Evaluate(HistoryAggregateType.TimeAverage, RowsA()[0], At(0), Now));
|
||||
ex.Aggregate.ShouldBe(HistoryAggregateType.TimeAverage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void An_uncertain_sample_in_a_bucket_degrades_the_aggregate_to_uncertain()
|
||||
{
|
||||
// Two usable samples, one Good and one Uncertain, no Bad: the value is computed, the status is Uncertain.
|
||||
var row = new BucketRow { Total = 2, Usable = 2, Good = 1, Bad = 0, Avg = 15, Min = 10, Max = 20, Sum = 30 };
|
||||
var avg = AggregateEvaluator.Evaluate(HistoryAggregateType.Average, row, At(0), Now);
|
||||
avg.Value.ShouldBe(15d);
|
||||
avg.StatusCode.ShouldBe(UncertainCalc);
|
||||
}
|
||||
}
|
||||
|
||||
+9
@@ -106,4 +106,13 @@ public sealed class AtTimeEvaluatorTests
|
||||
r.Value.ShouldBe("a");
|
||||
r.StatusCode.ShouldBe(Uncertain | 0x402u);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void An_uncertain_next_neighbour_makes_the_interpolation_uncertain()
|
||||
{
|
||||
var r = AtTimeEvaluator.Evaluate(At(5), S(0, HistorianValue.FromDouble(10), Good),
|
||||
S(10, HistorianValue.FromDouble(20), Uncertain), Now, Now);
|
||||
r.Value.ShouldBe(15d);
|
||||
r.StatusCode.ShouldBe(UncertainInterpolated);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user