package de.saring.util.unitcalc;
import org.junit.Before;
import org.junit.Test;
import java.util.Locale;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
/**
* This class contains all unit tests for the ConvertUtils class.
*
* @author Stefan Saring, Jacob Ilsoe Christensen (parts of C# version)
*/
public class FormatUtilsTest {
/**
* Thes tests needs to use the English locale, results look different for
* other.
*/
@Before
public void setUp() {
Locale.setDefault(Locale.ENGLISH);
}
/**
* Tests the getters of current unit system and speed view.
*/
@Test
public void testGetSettings() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.MinutesPerDistance);
assertEquals(FormatUtils.UnitSystem.English, formatUtils.getUnitSystem());
assertEquals(FormatUtils.SpeedView.MinutesPerDistance, formatUtils.getSpeedView());
}
/**
* Tests the appropriate method.
*/
@Test
public void testMinutes2TimeString() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour);
assertEquals(formatUtils.minutes2TimeString(0), "00:00");
assertEquals(formatUtils.minutes2TimeString(9), "00:09");
assertEquals(formatUtils.minutes2TimeString(70), "01:10");
assertEquals(formatUtils.minutes2TimeString(3600), "60:00");
assertEquals(formatUtils.minutes2TimeString(7199), "119:59");
}
/**
* Tests the appropriate method.
*/
@Test
public void testSeconds2TimeString() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour);
assertEquals(formatUtils.seconds2TimeString(0), "00:00:00");
assertEquals(formatUtils.seconds2TimeString(3599), "00:59:59");
assertEquals(formatUtils.seconds2TimeString(3601), "01:00:01");
assertEquals(formatUtils.seconds2TimeString(365145), "101:25:45");
}
/**
* Tests the appropriate method.
*/
@Test
public void testSeconds2MinuteTimeString() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour);
assertEquals(formatUtils.seconds2MinuteTimeString(0), "00:00");
assertEquals(formatUtils.seconds2MinuteTimeString(3599), "59:59");
assertEquals(formatUtils.seconds2MinuteTimeString(3601), "60:01");
assertEquals(formatUtils.seconds2MinuteTimeString(365145), "6085:45");
}
/**
* Tests the appropriate method.
*/
@Test
public void testTimeString2TotalSeconds() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour);
assertEquals(formatUtils.timeString2TotalSeconds(null), -1);
assertEquals(formatUtils.timeString2TotalSeconds(""), -1);
assertEquals(formatUtils.timeString2TotalSeconds("affe"), -1);
assertEquals(formatUtils.timeString2TotalSeconds(":"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("::"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("12:12:12:12"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("12:12:60"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("12:60:12"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("-12:12:12"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("12:-12:12"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("12:12:-12"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("a:b:c"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("12a:12:12"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("12:12b:12"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("12:12:12c"), -1);
assertEquals(formatUtils.timeString2TotalSeconds(":12:12"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("12::12"), -1);
assertEquals(formatUtils.timeString2TotalSeconds("0"), 0);
assertEquals(formatUtils.timeString2TotalSeconds("5"), 5);
assertEquals(formatUtils.timeString2TotalSeconds("37"), 37);
assertEquals(formatUtils.timeString2TotalSeconds("3:0"), (3 * 60) + 0);
assertEquals(formatUtils.timeString2TotalSeconds("3:5"), (3 * 60) + 5);
assertEquals(formatUtils.timeString2TotalSeconds("32:48"), (32 * 60) + 48);
assertEquals(formatUtils.timeString2TotalSeconds("3:0:0"), (3 * 60 * 60) + (0 * 60) + 0);
assertEquals(formatUtils.timeString2TotalSeconds("13:5:34"), (13 * 60 * 60) + (5 * 60) + 34);
assertEquals(formatUtils.timeString2TotalSeconds("114:32:48"), (114 * 60 * 60) + (32 * 60) + 48);
}
/**
* Tests that temperatureToString works as expected.
*/
@Test
public void testTemperatureToString() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour);
assertEquals("-5 C", formatUtils.temperatureToString((short) -5));
assertEquals("100 C", formatUtils.temperatureToString((short) 100));
assertEquals("1,234 C", formatUtils.temperatureToString((short) 1234));
formatUtils = new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour);
assertEquals("212 F", formatUtils.temperatureToString((short) 100));
}
/**
* Tests that distanceToString works as expected.
*/
@Test
public void testDistanceToString() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour);
assertEquals("0 km", formatUtils.distanceToString(0f, 0));
assertEquals("100 km", formatUtils.distanceToString(100f, 0));
assertEquals("100 km", formatUtils.distanceToString(100.0f, 2));
assertEquals("100.55 km", formatUtils.distanceToString(100.55f, 2));
assertEquals("100.56 km", formatUtils.distanceToString(100.555f, 2));
assertEquals("100,234.55 km", formatUtils.distanceToString(100234.55f, 2));
formatUtils = new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour);
assertEquals("0 m", formatUtils.distanceToString(0f, 0));
assertEquals("62 m", formatUtils.distanceToString(100f, 0));
assertEquals("62.45 m", formatUtils.distanceToString(100.50f, 2));
}
/**
* Tests that distanceToStringWithoutUnitName works as expected (most cases
* are allready tested in testDistanceToString()).
*/
@Test
public void testDistanceToStringWithoutUnitName() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour);
assertEquals("100", formatUtils.distanceToStringWithoutUnitName(100f, 0));
assertEquals("100.56", formatUtils.distanceToStringWithoutUnitName(100.555f, 2));
formatUtils = new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour);
assertEquals("62", formatUtils.distanceToStringWithoutUnitName(100f, 0));
assertEquals("62.45", formatUtils.distanceToStringWithoutUnitName(100.50f, 2));
}
/**
* Tests that speedToString works as expected.
*/
@Test
public void testSpeedToString() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour);
assertEquals("0", formatUtils.speedToString(0f, 0));
assertEquals("100 km/h", formatUtils.speedToString(100f, 0));
assertEquals("100 km/h", formatUtils.speedToString(100.0f, 2));
assertEquals("100.55 km/h", formatUtils.speedToString(100.55f, 2));
assertEquals("100.56 km/h", formatUtils.speedToString(100.555f, 2));
assertEquals("100,234.55 km/h", formatUtils.speedToString(100234.55f, 2));
formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.MinutesPerDistance);
assertEquals("05:00 min/km", formatUtils.speedToString(12f, 0));
assertEquals("N/A", formatUtils.speedToString(0f, 0));
formatUtils = new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour);
assertEquals("0", formatUtils.speedToString(0f, 0));
assertEquals("62 mph", formatUtils.speedToString(100f, 0));
assertEquals("62.45 mph", formatUtils.speedToString(100.50f, 2));
formatUtils = new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.MinutesPerDistance);
assertEquals("08:02 min/m", formatUtils.speedToString(12f, 0));
assertEquals("N/A", formatUtils.speedToString(0f, 0));
}
/**
* Tests that speedToStringWithoutUnitName works as expected (most cases are
* allready tested in testSpeedToString()).
*/
@Test
public void testSpeedToStringWithoutUnitName() {
FormatUtils formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour);
assertEquals("0", formatUtils.speedToString(0f, 0));
assertEquals("100", formatUtils.speedToStringWithoutUnitName(100f, 0));
assertEquals("100.56", formatUtils.speedToStringWithoutUnitName(100.555f, 2));
formatUtils = new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.MinutesPerDistance);
assertEquals("05:00", formatUtils.speedToStringWithoutUnitName(12f, 0));
assertEquals("N/A", formatUtils.speedToStringWithoutUnitName(0f, 0));
formatUtils = new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour);
assertEquals("0", formatUtils.speedToString(0f, 0));
assertEquals("62.45", formatUtils.speedToStringWithoutUnitName(100.50f, 2));
formatUtils = new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.MinutesPerDistance);
assertEquals("08:02", formatUtils.speedToStringWithoutUnitName(12f, 0));
assertEquals("N/A", formatUtils.speedToStringWithoutUnitName(0f, 0));
}
/**
* Tests that getDistanceUnitName works as expected.
*/
@Test
public void testGetDistanceUnitName() {
assertEquals("km", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).getDistanceUnitName());
assertEquals("m", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).getDistanceUnitName());
}
/**
* Tests that getSpeedUnitName works as expected.
*/
@Test
public void testGetSpeedUnitName() {
assertEquals("km/h", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).getSpeedUnitName());
assertEquals("mph", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).getSpeedUnitName());
assertEquals("min/km", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.MinutesPerDistance).getSpeedUnitName());
assertEquals("min/m", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.MinutesPerDistance).getSpeedUnitName());
}
/**
* Tests that getTemperatureUnitName works as expected.
*/
@Test
public void testGetTemperatureUnitName() {
assertEquals("C", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).getTemperatureUnitName());
assertEquals("F", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).getTemperatureUnitName());
}
/**
* Tests that getAltitudeUnitName() works as expected.
*/
@Test
public void testGetAltitudeUnitName() {
assertEquals("m", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).getAltitudeUnitName());
assertEquals("ft", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).getAltitudeUnitName());
}
/**
* Tests that heartRateToString works as expected.
*/
@Test
public void testHeartRateToString() {
assertEquals("0 bpm", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).heartRateToString(0));
assertEquals("100 bpm", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).heartRateToString(100));
assertEquals("1,234 bpm", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).heartRateToString(1234));
}
/**
* Tests that heightToString works as expected.
*/
@Test
public void testHeightToString() {
assertEquals("0 m", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).heightToString(0));
assertEquals("100 m", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).heightToString(100));
assertEquals("10,023 m", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).heightToString(10023));
assertEquals("0 ft", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).heightToString(0));
assertEquals("328 ft", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).heightToString(100));
}
/**
* Tests that heightToStringWithoutUnitName works as expected (most cases
* are allready tested in testHeightToString()).
*/
@Test
public void testHeightToStringWithoutUnitName() {
assertEquals("100", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).heightToStringWithoutUnitName(100));
assertEquals("328", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).heightToStringWithoutUnitName(100));
}
/**
* Tests that cadenceToString works as expected.
*/
@Test
public void testCadenceToString() {
assertEquals("0 rpm", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).cadenceToString(0));
assertEquals("90 rpm", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).cadenceToString(90));
assertEquals("1,234 rpm", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).cadenceToString(1234));
}
/**
* Tests that caloriesToString works as expected.
*/
@Test
public void testCaloriesToString() {
assertEquals("0 kCal", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).caloriesToString(0));
assertEquals("90 kCal", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).caloriesToString(90));
assertEquals("1,234 kCal", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).caloriesToString(1234));
assertEquals("1,234,567 kCal", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).caloriesToString(1234567));
}
/**
* Tests that weightToString works as expected.
*/
@Test
public void testweightToString() {
assertEquals("0 kg", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).weightToString(0, 0));
assertEquals("100 kg", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).weightToString(100, 2));
assertEquals("100.24 kg", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).weightToString(100.2373f, 2));
assertEquals("0 lbs", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).weightToString(0, 2));
assertEquals("220.46 lbs", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).weightToString(100, 2));
assertEquals("220 lbs", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).weightToString(100, 0));
}
/**
* Tests that weightToStringWithoutUnitName works as expected (most cases
* are allready tested in testweightToString()).
*/
@Test
public void testWeightToStringWithoutUnitName() {
assertEquals("100", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).weightToStringWithoutUnitName(100, 2));
assertEquals("100.24", new FormatUtils(FormatUtils.UnitSystem.Metric, FormatUtils.SpeedView.DistancePerHour).weightToStringWithoutUnitName(100.2373f, 2));
assertEquals("220.46", new FormatUtils(FormatUtils.UnitSystem.English, FormatUtils.SpeedView.DistancePerHour).weightToStringWithoutUnitName(100, 2));
}
}