using MeterVault.Core.Domain; namespace MeterVault.Core.Tests; /// Terse builders for readings/events/configs in normalizer tests. internal static class TestData { public static DateTimeOffset Month(int year, int month) => new(new DateTime(year, month, 1, 0, 0, 0, DateTimeKind.Utc)); public static Reading Reading(int meterId, DateTimeOffset time, double value) => new() { MeterId = meterId, Time = time, Value = value, Quality = ReadingQuality.Imported, }; public static MeterEvent Swap(int meterId, DateTimeOffset time, double? prevValue = null, double? newValue = null, double? amount = null) => new() { MeterId = meterId, Time = time, EventType = MeterEventType.MeterSwap, PrevValue = prevValue, NewValue = newValue, Amount = amount, }; public static MeterEvent Reset(int meterId, DateTimeOffset time, double? newValue = 0) => new() { MeterId = meterId, Time = time, EventType = MeterEventType.CounterReset, NewValue = newValue, }; public static MeterEvent Delivery(int meterId, DateTimeOffset time, double litres) => new() { MeterId = meterId, Time = time, EventType = MeterEventType.Delivery, Amount = litres, Unit = "L", }; public static MeterEvent TankLevelCm(int meterId, DateTimeOffset time, double cm) => new() { MeterId = meterId, Time = time, EventType = MeterEventType.TankLevel, Amount = cm, Unit = "cm", }; }