/*
Copywrite 2017 Will Winder
This file is part of Universal Gcode Sender (UGS).
UGS is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
UGS is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with UGS. If not, see <http://www.gnu.org/licenses/>.
*/
package com.willwinder.universalgcodesender.uielements.jog;
import org.junit.Assert;
import org.junit.Test;
/**
* @author Joacim Breiler
*/
public class StepSizeSpinnerModelTest {
@Test
public void nextValueWhenMaxShouldNotIncrement() {
StepSizeSpinnerModel model = new StepSizeSpinnerModel();
model.setValue(StepSizeSpinnerModel.MAX_VALUE);
Assert.assertEquals(null, model.getNextValue());
}
@Test
public void previousValueWhenMaxShouldDecrement() {
StepSizeSpinnerModel model = new StepSizeSpinnerModel();
model.setValue(StepSizeSpinnerModel.MAX_VALUE);
Assert.assertEquals(StepSizeSpinnerModel.MAX_VALUE - 100, model.getPreviousValue());
}
@Test
public void nextValueWhenMinShouldIncrement() {
StepSizeSpinnerModel model = new StepSizeSpinnerModel();
model.setValue(StepSizeSpinnerModel.MIN_VALUE);
Assert.assertEquals(StepSizeSpinnerModel.MIN_VALUE + 0.001, model.getNextValue());
}
@Test
public void previousValueWhenMinShouldNotDecrement() {
StepSizeSpinnerModel model = new StepSizeSpinnerModel();
model.setValue(StepSizeSpinnerModel.MIN_VALUE);
Assert.assertEquals(null, model.getPreviousValue());
}
@Test
public void stepSizesShouldChange() {
StepSizeSpinnerModel model = new StepSizeSpinnerModel();
model.setValue(StepSizeSpinnerModel.MIN_VALUE);
Assert.assertEquals(0.002, model.getNextValue());
model.setValue(StepSizeSpinnerModel.MIN_VALUE * 10);
Assert.assertEquals(0.02, model.getNextValue());
model.setValue(StepSizeSpinnerModel.MIN_VALUE * 100);
Assert.assertEquals(0.2, model.getNextValue());
model.setValue(StepSizeSpinnerModel.MIN_VALUE * 1000);
Assert.assertEquals(2.0, model.getNextValue());
model.setValue(StepSizeSpinnerModel.MIN_VALUE * 10000);
Assert.assertEquals(20.0, model.getNextValue());
model.setValue(StepSizeSpinnerModel.MIN_VALUE * 100000);
Assert.assertEquals(200.0, model.getNextValue());
model.setValue(StepSizeSpinnerModel.MIN_VALUE * 1000000);
Assert.assertEquals(null, model.getNextValue());
Assert.assertEquals(1000.0, model.getValue());
}
}