You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
3.9 KiB
143 lines
3.9 KiB
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);
|
|
}
|
|
}
|
|
|