public async Task Move_SameDirection_BacklashComp_DirectionChangeToInwards() { profileServiceMock.SetupProperty(m => m.ActiveProfile.FocuserSettings.BacklashIn, 500); profileServiceMock.SetupProperty(m => m.ActiveProfile.FocuserSettings.BacklashOut, 100); var sut = new AbsoluteBacklashCompensationDecorator(profileServiceMock.Object, focuserMock.Object); await sut.Move(1500, default); await sut.Move(1000, default); sut.Position.Should().Be(1000); focuserMock.Object.Position.Should().Be(500); }
public async Task Move_SameDirection_BacklashComp_FirstOutThenInThenOutThenIn() { profileServiceMock.SetupProperty(m => m.ActiveProfile.FocuserSettings.BacklashIn, 500); profileServiceMock.SetupProperty(m => m.ActiveProfile.FocuserSettings.BacklashOut, 100); var sut = new AbsoluteBacklashCompensationDecorator(profileServiceMock.Object, focuserMock.Object); await sut.Move(1500, default); // no comp await sut.Move(1000, default); // -500 await sut.Move(1400, default); // +100 await sut.Move(1200, default); // -500 sut.Position.Should().Be(1200); focuserMock.Object.Position.Should().Be(300); }
public async Task Move_AboveMaxStepDueToBacklashComp_MoveToMaxStep() { profileServiceMock.SetupProperty(m => m.ActiveProfile.FocuserSettings.BacklashIn, 100); profileServiceMock.SetupProperty(m => m.ActiveProfile.FocuserSettings.BacklashOut, 500); var sut = new AbsoluteBacklashCompensationDecorator(profileServiceMock.Object, focuserMock.Object); await sut.Move(1500, default); // no comp await sut.Move(1000, default); // -100 await sut.Move(1400, default); // +500 await sut.Move(1000, default); // -100 await sut.Move(50000, default); sut.Position.Should().Be(50000); focuserMock.Object.Position.Should().Be(50000); }