Create DistanceFormatter.

Fixes #1197
This commit is contained in:
Dennis Guse
2022-04-23 16:02:15 +02:00
parent b44bab1ab5
commit f2ac1edc4b
65 changed files with 177 additions and 311 deletions
@@ -0,0 +1,33 @@
package de.dennisguse.opentracks.data.models;
import static org.junit.Assert.assertEquals;
import android.content.Context;
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
@RunWith(AndroidJUnit4.class)
public class DistanceFormatterTest {
private final Context context = ApplicationProvider.getApplicationContext();
@Test
public void testFormatDistance() {
DistanceFormatter formatter = DistanceFormatter.Builder()
.setDecimalCount(2)
.build(context);
// A large number in metric
assertEquals("5.00 km", formatter.formatDistance(Distance.of(5000), true));
// A large number in imperial
assertEquals("3.11 mi", formatter.formatDistance(Distance.of(5000), false));
// A small number in metric
assertEquals("100.00 m", formatter.formatDistance(Distance.of(100), true));
// A small number in imperial
assertEquals("328.08 ft", formatter.formatDistance(Distance.of(100), false));
}
}
@@ -47,7 +47,6 @@ import java.util.TimeZone;
import java.util.stream.Collectors;
import de.dennisguse.opentracks.LocaleRule;
import de.dennisguse.opentracks.data.models.Distance;
import de.dennisguse.opentracks.data.models.Speed;
/**
@@ -91,21 +90,6 @@ public class StringUtilsTest {
assertEquals("100:00:00", StringUtils.formatElapsedTimeWithHour(Duration.ofMillis(360000000)));
}
/**
* Tests {@link StringUtils#formatDistance(android.content.Context, Distance, boolean)}.
*/
@Test
public void testFormatDistance() {
// A large number in metric
assertEquals("5.00 km", StringUtils.formatDistance(context, Distance.of(5000), true));
// A large number in imperial
assertEquals("3.11 mi", StringUtils.formatDistance(context, Distance.of(5000), false));
// A small number in metric
assertEquals("100.00 m", StringUtils.formatDistance(context, Distance.of(100), true));
// A small number in imperial
assertEquals("328.08 ft", StringUtils.formatDistance(context, Distance.of(100), false));
}
/**
* Tests {@link StringUtils#formatCData(String)}.
*/