parent
0373867875
commit
65acd42f11
7 changed files with 246 additions and 12 deletions
@ -1,4 +1,4 @@ |
||||
package com.mousetech.gourmetj; |
||||
package com.mousetech.gourmetj.utils; |
||||
|
||||
import java.text.DecimalFormat; |
||||
import java.util.regex.Matcher; |
@ -0,0 +1,75 @@ |
||||
/** |
||||
* Copyright (C) 2021, Tim Holloway |
||||
* |
||||
* Date written: Dec 2, 2021 |
||||
* Author: Tim Holloway <timh@mousetech.com> |
||||
*/ |
||||
package com.mousetech.gourmetj.jsf.util; |
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals; |
||||
|
||||
import org.junit.jupiter.api.Test; |
||||
|
||||
import com.mousetech.gourmetj.IngredientUI; |
||||
import com.mousetech.gourmetj.persistence.model.Ingredient; |
||||
|
||||
/** |
||||
* @author timh |
||||
* @since Dec 2, 2021 |
||||
*/ |
||||
public class IngredientUITest { |
||||
|
||||
/** |
||||
* Test method for {@link com.mousetech.gourmetj.jsf.util.IngredientUI#getDisplayAmount()}. |
||||
*/ |
||||
@Test |
||||
public void testGetDisplayAmount() { |
||||
IngredientUI ui = new IngredientUI(new Ingredient()); |
||||
|
||||
ui.setAmount(12.0d); |
||||
assertEquals("12", ui.getDisplayAmount()); |
||||
|
||||
ui.setAmount(2.66666d); |
||||
assertEquals( "2⅔", ui.getDisplayAmount()); |
||||
|
||||
ui.setAmount(4.5); |
||||
assertEquals("4½", ui.getDisplayAmount()); |
||||
|
||||
ui.setAmount(3.57d); |
||||
assertEquals("3.57", ui.getDisplayAmount()); |
||||
} |
||||
|
||||
/** |
||||
* Test method for {@link com.mousetech.gourmetj.jsf.util.IngredientUI#setDisplayAmount(java.lang.String)}. |
||||
*/ |
||||
@Test |
||||
public void testSetDisplayAmount() { |
||||
IngredientUI ui = new IngredientUI(new Ingredient()); |
||||
|
||||
ui.setDisplayAmount("3 - 1/2"); |
||||
assertEquals(3.5d, ui.getAmount(), 0.001); |
||||
|
||||
ui.setDisplayAmount("2⅔"); |
||||
assertEquals(2.6666, ui.getAmount(), 0.001); |
||||
|
||||
ui.setDisplayAmount("9"); |
||||
assertEquals(9.0d, ui.getAmount(), 0.001); |
||||
} |
||||
|
||||
/** |
||||
* Test method for {@link com.mousetech.gourmetj.jsf.util.IngredientUI#getOptionalCB()}. |
||||
*/ |
||||
@Test |
||||
public void testGetOptionalCB() { |
||||
//fail("Not yet implemented");
|
||||
} |
||||
|
||||
/** |
||||
* Test method for {@link com.mousetech.gourmetj.jsf.util.IngredientUI#setOptionalCB(boolean)}. |
||||
*/ |
||||
@Test |
||||
public void testSetOptionalCB() { |
||||
//fail("Not yet implemented");
|
||||
} |
||||
|
||||
} |
@ -0,0 +1,143 @@ |
||||
package com.mousetech.gourmetj.utils; |
||||
|
||||
import static org.junit.jupiter.api.Assertions.*; |
||||
|
||||
import org.junit.jupiter.api.Test; |
||||
|
||||
import com.mousetech.gourmetj.utils.IngredientDigester.IngredientAmountFormat; |
||||
|
||||
public class IngredientDigesterTest { |
||||
|
||||
@Test |
||||
public void digestFractionTest() { |
||||
Double value; |
||||
|
||||
value = IngredientDigester.digestFraction("5"); |
||||
assertEquals(0.0d, value, 0.001); // No fractional part
|
||||
|
||||
value = IngredientDigester.digestFraction("1/2"); |
||||
assertEquals(0.5d, value, 0.001); |
||||
|
||||
value = IngredientDigester.digestFraction("3 3/4"); |
||||
assertEquals(3.75d, value, 0.001); |
||||
|
||||
value = IngredientDigester.digestFraction("33 - 1/3"); |
||||
assertEquals(33.33333333d, value, 0.001); |
||||
} |
||||
|
||||
@Test |
||||
public void digestSingleAmountTest() { |
||||
Double value; |
||||
|
||||
value = IngredientDigester.parseSingleAmount("5"); |
||||
assertEquals(5.0d, value, 0.001); // No fractional part
|
||||
|
||||
value = IngredientDigester.parseSingleAmount("1/2"); |
||||
assertEquals(0.5d, value, 0.001); |
||||
|
||||
value = IngredientDigester.parseSingleAmount("3 3/4"); |
||||
assertEquals(3.75d, value, 0.001); |
||||
|
||||
// value = IngredientDigester.parseSingleAmount("33 - 1/3");
|
||||
// assertEquals(0.33333333d, value, 0.001);
|
||||
} |
||||
|
||||
@Test |
||||
public void parseAmountTest() { |
||||
Double[] value; |
||||
|
||||
value = IngredientDigester.digestAmount("5"); |
||||
assertEquals(5.0d, value[0], 0.001); |
||||
assertNull(value[1]); |
||||
|
||||
value = IngredientDigester.digestAmount("2½"); |
||||
assertEquals(2.5d, value[0], 0.001); |
||||
assertNull(value[1]); |
||||
|
||||
value = IngredientDigester.digestAmount("7 ⅓"); |
||||
assertEquals(7.33333d, value[0], 0.001); |
||||
assertNull(value[1]); |
||||
|
||||
value = IngredientDigester.digestAmount("1/3"); |
||||
assertEquals(0.33333d, value[0], 0.001); |
||||
assertNull(value[1]); |
||||
|
||||
value = IngredientDigester.digestAmount("9 3/4"); |
||||
assertEquals(9.75d, value[0], 0.001); |
||||
assertNull(value[1]); |
||||
|
||||
value = IngredientDigester.digestAmount("3-5"); |
||||
assertEquals(3.0d, value[0], 0.001); |
||||
assertEquals(5.0d, value[1], 0.001); |
||||
|
||||
value = IngredientDigester.digestAmount("1/2 -3/4"); |
||||
assertEquals(0.5d, value[0], 0.001); |
||||
assertEquals(0.75d, value[1], 0.001); |
||||
|
||||
value = IngredientDigester.digestAmount("¼-⅓"); |
||||
assertEquals(0.25d, value[0], 0.001); |
||||
assertEquals(0.33333333d, value[1], 0.001); |
||||
|
||||
} |
||||
|
||||
@Test |
||||
public void testAmountParser() { |
||||
String[] results; |
||||
|
||||
results = IngredientDigester.parseFancyNumber("1 cup milk"); |
||||
assertEquals("1", results[0]); |
||||
assertEquals("cup milk", results[1]); |
||||
|
||||
|
||||
results = IngredientDigester.parseFancyNumber("2 ½ lbs pease"); |
||||
assertEquals("2 ½", results[0]); |
||||
assertEquals("lbs pease", results[1]); |
||||
|
||||
results = IngredientDigester.parseFancyNumber("2 3/4 cups water"); |
||||
assertEquals("2 3/4", results[0]); |
||||
assertEquals("cups water", results[1]); |
||||
|
||||
results = IngredientDigester.parseFancyNumber("7 1/2 cups water"); |
||||
assertEquals("7 1/2", results[0]); |
||||
assertEquals("cups water", results[1]); |
||||
|
||||
} |
||||
|
||||
@Test |
||||
public void testDisplayFormatTest() { |
||||
String value; |
||||
|
||||
value = IngredientDigester.displayAmountPart( |
||||
IngredientAmountFormat.IA_TEXT, 0d); |
||||
assertEquals("", value); |
||||
|
||||
value = IngredientDigester.displayAmountPart( |
||||
IngredientAmountFormat.IA_TEXT, 0.5d); |
||||
assertEquals("1/2", value); |
||||
|
||||
value = IngredientDigester.displayAmountPart( |
||||
IngredientAmountFormat.IA_TEXT, 12.0d); |
||||
assertEquals("12", value); |
||||
|
||||
value = IngredientDigester.displayAmountPart( |
||||
IngredientAmountFormat.IA_SYMBOLS, 3.5d); |
||||
assertEquals("3½", value); |
||||
|
||||
value = IngredientDigester.displayAmountPart( |
||||
IngredientAmountFormat.IA_DECIMAL, 3.5d); |
||||
assertEquals("3.5", value); |
||||
|
||||
value = IngredientDigester.displayAmountPart( |
||||
IngredientAmountFormat.IA_TEXT, 3.5d); |
||||
assertEquals("3 1/2", value); |
||||
|
||||
|
||||
value = IngredientDigester.displayAmountPart( |
||||
IngredientAmountFormat.IA_SYMBOLS, 7.333333333d); |
||||
assertEquals("7⅓", value); |
||||
|
||||
value = IngredientDigester.displayAmountPart( |
||||
IngredientAmountFormat.IA_SYMBOLS, 7.933333333d); |
||||
assertEquals("7.933", value); |
||||
} |
||||
} |
Loading…
Reference in new issue