| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- using Xunit;
- using IvfTl.AutoFocus.Layout;
- namespace IvfTl.AutoFocus.Tests
- {
- public class FocusRangeResolverTests
- {
- private static FocusRangeRawConfig Raw(
- int? wellH = null, int? wellV = null,
- int? devH = null, int? devV = null,
- int expMin = 10, int expMax = 800,
- int hCenter = 71000, int vCenter = 88000) =>
- new FocusRangeRawConfig
- {
- WellHRange = wellH, WellVRange = wellV,
- DeviceHRange = devH, DeviceVRange = devV,
- ExposureMin = expMin, ExposureMax = expMax,
- HorizontalCenter = hCenter, VerticalCenter = vCenter,
- };
- [Fact]
- public void 半幅_well级覆盖设备级()
- {
- var r = FocusRangeResolver.Resolve(Raw(wellH: 1500, wellV: 4000, devH: 2000, devV: 6000));
- Assert.Equal(1500, r.HHalf);
- Assert.Equal(4000, r.VHalf);
- }
- [Fact]
- public void 半幅_well空则继承设备级()
- {
- var r = FocusRangeResolver.Resolve(Raw(wellH: null, wellV: null, devH: 2000, devV: 6000));
- Assert.Equal(2000, r.HHalf);
- Assert.Equal(6000, r.VHalf);
- }
- [Fact]
- public void 半幅_两级皆空则回退引擎默认()
- {
- var r = FocusRangeResolver.Resolve(Raw(wellH: null, wellV: null, devH: null, devV: null));
- Assert.Equal(FocusRangeResolver.DefaultHHalf, r.HHalf);
- Assert.Equal(FocusRangeResolver.DefaultVHalf, r.VHalf);
- }
- [Fact]
- public void 曝光范围_透传设备级()
- {
- var r = FocusRangeResolver.Resolve(Raw(expMin: 15, expMax: 600));
- Assert.Equal(15, r.ExpLo);
- Assert.Equal(600, r.ExpHi);
- }
- [Fact]
- public void 中心_原样透传()
- {
- var r = FocusRangeResolver.Resolve(Raw(hCenter: 71000, vCenter: 88000));
- Assert.Equal(71000, r.HCenter);
- Assert.Equal(88000, r.VCenter);
- }
- }
- }
|