Ver Fonte

Eliminate isApproximate, since it's a dumb idea.

Sam Jaffe há 5 anos atrás
pai
commit
25e85a3307

+ 3 - 7
src/main/lombok/org/leumasjaffe/recipe/model/Duration.java

@@ -21,20 +21,19 @@ public class Duration {
 	public static final Duration ZERO = new Duration();
 	
 	Display displayAs = Display.SECONDS;
-	boolean isApproximate = false;
 	int minSeconds = 0;
 	int maxSeconds = 0;
 	
 	public Duration plus(Duration rhs) {
 		final Display newDisplayAs = displayAs.ordinal() < rhs.displayAs.ordinal() ?
 				displayAs : rhs.displayAs;
-		return new Duration(newDisplayAs, isApproximate || rhs.isApproximate,
-				minSeconds + rhs.minSeconds, maxSeconds + rhs.maxSeconds).smartScale();
+		return new Duration(newDisplayAs, minSeconds + rhs.minSeconds,
+				maxSeconds + rhs.maxSeconds).smartScale();
 	}
 	
 	public Duration round(int to) {
 		to *= displayAs.inSeconds;
-		return new Duration(displayAs, isApproximate,
+		return new Duration(displayAs,
 				to * Math.round(minSeconds / (float) to),
 				to * Math.round(maxSeconds / (float) to));
 	}
@@ -53,9 +52,6 @@ public class Duration {
 	@Override
 	public String toString() {
 		StringBuilder build = new StringBuilder();
-		if (isApproximate) {
-			build.append("~ ");
-		}
 		if (minSeconds != 0) {
 			build.append(convert(minSeconds, displayAs));
 			build.append(" - ");

+ 8 - 24
src/test/java/org/leumasjaffe/recipe/model/DurationTest.java

@@ -5,7 +5,6 @@ import static org.junit.jupiter.api.Assertions.*;
 import static org.hamcrest.MatcherAssert.*;
 import static org.hamcrest.core.IsNot.*;
 import static org.hamcrest.core.StringContains.*;
-import static org.hamcrest.core.StringStartsWith.*;
 
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
@@ -15,57 +14,42 @@ class DurationTest {
 
 	@Test
 	void testPlusConvertsToLowestUnit() {
-		final Duration inSec = new Duration(Duration.Display.SECONDS, false, 10, 20);
-		final Duration inMin = new Duration(Duration.Display.MINUTES, false, 60, 120);
+		final Duration inSec = new Duration(Duration.Display.SECONDS, 10, 20);
+		final Duration inMin = new Duration(Duration.Display.MINUTES, 60, 120);
 		
 		assertEquals(Duration.Display.SECONDS, inSec.plus(inMin).getDisplayAs());
 		assertEquals(Duration.Display.SECONDS, inMin.plus(inSec).getDisplayAs());
 	}
-
-	@Test
-	void testPlusWillCarryOverApproximation() {
-		final Duration inSec = new Duration(Duration.Display.SECONDS, true, 10, 20);
-		final Duration inMin = new Duration(Duration.Display.MINUTES, false, 60, 120);
-		
-		assertTrue(inSec.plus(inMin).isApproximate());
-		assertTrue(inMin.plus(inSec).isApproximate());
-	}
-	
-	@Test
-	void testToStringApproxAddsTilde() {
-		final Duration inSec = new Duration(Duration.Display.SECONDS, true, 0, 0);
-		assertThat(inSec.toString(), startsWith("~"));
-	}
 	
 	@Test
 	void testToStringNonApproxDoesNotHaveTilde() {
-		final Duration inSec = new Duration(Duration.Display.SECONDS, false, 0, 0);
+		final Duration inSec = new Duration(Duration.Display.SECONDS, 0, 0);
 		assertThat(inSec.toString(), not(containsString("~")));
 	}
 	
 	@Test
 	void testNonZeroMinProducesRange() {
-		final Duration inSec = new Duration(Duration.Display.SECONDS, false, 10, 0);
+		final Duration inSec = new Duration(Duration.Display.SECONDS, 10, 0);
 		assertThat(inSec.toString(), containsString("-"));
 	}
 	
 	@Test
 	void testZeroMinProducesSingleNumber() {
-		final Duration inSec = new Duration(Duration.Display.SECONDS, false, 0, 0);
+		final Duration inSec = new Duration(Duration.Display.SECONDS, 0, 0);
 		assertThat(inSec.toString(), not(containsString("-")));
 	}
 	
 	@ParameterizedTest
 	@EnumSource(Duration.Display.class)
 	void testUnitStringIsIncludedInOutput(final Duration.Display as) {
-		final Duration dur = new Duration(as, false, 0, 0);
+		final Duration dur = new Duration(as, 0, 0);
 		assertThat(dur.toString(), containsString(as.abbreviation));
 	}
 	
 	@Test
 	void testUnitControlsOutputScale() {
-		final Duration inSec = new Duration(Duration.Display.SECONDS, false, 10, 20);
-		final Duration inMin = new Duration(Duration.Display.MINUTES, false, 10, 20);
+		final Duration inSec = new Duration(Duration.Display.SECONDS, 10, 20);
+		final Duration inMin = new Duration(Duration.Display.MINUTES, 10, 20);
 		assertEquals("10 - 20 s", inSec.toString());
 		assertEquals("0 - 0 min", inMin.toString());
 	}

+ 2 - 2
src/test/java/org/leumasjaffe/recipe/model/PhaseTest.java

@@ -12,7 +12,7 @@ import org.junit.jupiter.api.Test;
 
 class PhaseTest {
 	private static final Amount _1g = new Amount("1 g");
-	private static final Duration dur = new Duration(Duration.Display.SECONDS, false, 10, 20);
+	private static final Duration dur = new Duration(Duration.Display.SECONDS, 10, 20);
 
 	@Test
 	void cannotAddNullPreparation() {
@@ -32,7 +32,7 @@ class PhaseTest {
 		final Step step = new Step();
 		step.setDuration(dur);
 		phase.setCooking(Arrays.asList(step, step));
-		assertEquals(new Duration(Duration.Display.SECONDS, false, 20, 40),
+		assertEquals(new Duration(Duration.Display.SECONDS, 20, 40),
 				phase.getDuration());
 	}
 	

+ 1 - 1
src/test/java/org/leumasjaffe/recipe/view/PreparationPanelTest.java

@@ -29,7 +29,7 @@ class PreparationPanelTest extends SwingTestCase {
 	
 	@BeforeEach
 	void setUp() {
-		dur = new Duration(Duration.Display.SECONDS, false, 0, 30);
+		dur = new Duration(Duration.Display.SECONDS, 0, 30);
 		doReturn(dur).when(stuff).getDuration();
 		doReturn(Stream.of(
 				new Ingredient("Butter", "", new Amount("10 g")),

+ 1 - 1
src/test/java/org/leumasjaffe/recipe/view/RestPanelTest.java

@@ -23,7 +23,7 @@ class RestPanelTest extends SwingTestCase {
 	
 	@BeforeEach
 	void setUp() {
-		dur = new Duration(Duration.Display.SECONDS, false, 0, 30);
+		dur = new Duration(Duration.Display.SECONDS, 0, 30);
 		stuff = new Rest(Rest.Where.REFRIGERATOR, dur);
 		panel = new RestPanel(stuff);
 	}

+ 1 - 1
src/test/java/org/leumasjaffe/recipe/view/StepPanelTest.java

@@ -32,7 +32,7 @@ class StepPanelTest extends SwingTestCase {
 
 	@BeforeEach
 	void setUp() {
-		dur = new Duration(Duration.Display.SECONDS, false, 0, 30);
+		dur = new Duration(Duration.Display.SECONDS, 0, 30);
 		doReturn(dur).when(stuff).getDuration();
 		doReturn("These are test instructions").when(stuff).getInstruction();
 		doReturn(Arrays.asList(new Ingredient("Onion", "Sliced", new Amount("100 g"))))