source: josm/trunk/test/unit/org/openstreetmap/josm/gui/SystemOfMeasurementTest.java

Last change on this file was 18853, checked in by taylor.smock, 7 months ago

See #16567: Update to JUnit 5

This removes new JOSMTestRules() with no additional setup and most
JOSMFixture calls.

Removing the bare JOSMTestRules speeds up the test suite since there are two
fewer System.gc() calls per test.

  • Property svn:eol-style set to native
File size: 6.3 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui;
3
4import static org.junit.jupiter.api.Assertions.assertEquals;
5
6import java.text.DecimalFormat;
7import java.text.DecimalFormatSymbols;
8import java.util.Locale;
9
10import org.junit.jupiter.api.Test;
11import org.openstreetmap.josm.data.SystemOfMeasurement;
12
13/**
14 * Unit tests of {@link SystemOfMeasurement} class.
15 */
16class SystemOfMeasurementTest {
17 /**
18 * Test of {@link SystemOfMeasurement#getDistText} method.
19 */
20 @Test
21 void testGetDistText() {
22
23 assertEquals("< 0.01 m", SystemOfMeasurement.METRIC.getDistText(-1));
24 assertEquals("< 0.01 m", SystemOfMeasurement.METRIC.getDistText(-0.99));
25 assertEquals("< 0.01 m", SystemOfMeasurement.METRIC.getDistText(-0));
26 assertEquals("< 0.01 m", SystemOfMeasurement.METRIC.getDistText(0));
27
28 assertEquals("0.01 m", SystemOfMeasurement.METRIC.getDistText(0.01));
29
30 assertEquals("0.99 m", SystemOfMeasurement.METRIC.getDistText(0.99));
31 assertEquals("1.00 m", SystemOfMeasurement.METRIC.getDistText(1.0));
32 assertEquals("1.01 m", SystemOfMeasurement.METRIC.getDistText(1.01));
33
34 assertEquals("9.99 m", SystemOfMeasurement.METRIC.getDistText(9.99));
35 assertEquals("10.0 m", SystemOfMeasurement.METRIC.getDistText(10.0));
36 assertEquals("10.0 m", SystemOfMeasurement.METRIC.getDistText(10.01));
37 assertEquals("10.0 m", SystemOfMeasurement.METRIC.getDistText(10.049));
38 assertEquals("10.1 m", SystemOfMeasurement.METRIC.getDistText(10.050));
39 assertEquals("10.1 m", SystemOfMeasurement.METRIC.getDistText(10.051));
40
41 assertEquals("100.0 m", SystemOfMeasurement.METRIC.getDistText(99.99));
42 assertEquals("100.0 m", SystemOfMeasurement.METRIC.getDistText(100.0));
43 assertEquals("100.0 m", SystemOfMeasurement.METRIC.getDistText(100.01));
44
45 assertEquals("1000.0 m", SystemOfMeasurement.METRIC.getDistText(999.99)); // TODO ? 1.00 km should be better
46 assertEquals("1000.0 m", SystemOfMeasurement.METRIC.getDistText(1000.0)); // TODO ? 1.00 km should be better
47 assertEquals("1.00 km", SystemOfMeasurement.METRIC.getDistText(1000.01));
48
49 assertEquals("10.00 km", SystemOfMeasurement.METRIC.getDistText(9999.99)); // TODO ? 10.0 km should be better
50 assertEquals("10.0 km", SystemOfMeasurement.METRIC.getDistText(10000.0));
51 assertEquals("10.0 km", SystemOfMeasurement.METRIC.getDistText(10000.01));
52
53 assertEquals("100.0 km", SystemOfMeasurement.METRIC.getDistText(99999.99));
54 assertEquals("100.0 km", SystemOfMeasurement.METRIC.getDistText(100000.0));
55 assertEquals("100.0 km", SystemOfMeasurement.METRIC.getDistText(100000.01));
56 }
57
58 /**
59 * Test of {@link SystemOfMeasurement#getDistText} method with a non-English locale.
60 */
61 @Test
62 void testGetDistTextLocalized() {
63 final DecimalFormat format = new DecimalFormat("0.000", DecimalFormatSymbols.getInstance(Locale.GERMAN));
64 assertEquals("0,001 m", SystemOfMeasurement.METRIC.getDistText(0.001, format, 1e-6));
65 assertEquals("< 0,010 m", SystemOfMeasurement.METRIC.getDistText(0.001, format, 0.01));
66 assertEquals("10,051 m", SystemOfMeasurement.METRIC.getDistText(10.0514, format, 0.01));
67 assertEquals("10,052 m", SystemOfMeasurement.METRIC.getDistText(10.0515, format, 0.01));
68 assertEquals("100,000 km", SystemOfMeasurement.METRIC.getDistText(100000.0, format, 0.01));
69 }
70
71 /**
72 * Test of {@link SystemOfMeasurement#getAreaText} method.
73 */
74 @Test
75 void testGetAreaText() {
76 assertEquals("< 0.01 m²", SystemOfMeasurement.METRIC.getAreaText(-1));
77 assertEquals("< 0.01 m²", SystemOfMeasurement.METRIC.getAreaText(-0.99));
78 assertEquals("< 0.01 m²", SystemOfMeasurement.METRIC.getAreaText(-0));
79 assertEquals("< 0.01 m²", SystemOfMeasurement.METRIC.getAreaText(0));
80
81 assertEquals("0.01 m²", SystemOfMeasurement.METRIC.getAreaText(0.01));
82
83 assertEquals("0.99 m²", SystemOfMeasurement.METRIC.getAreaText(0.99));
84 assertEquals("1.00 m²", SystemOfMeasurement.METRIC.getAreaText(1.0));
85 assertEquals("1.01 m²", SystemOfMeasurement.METRIC.getAreaText(1.01));
86
87 assertEquals("9.99 m²", SystemOfMeasurement.METRIC.getAreaText(9.99));
88 assertEquals("10.0 m²", SystemOfMeasurement.METRIC.getAreaText(10.0));
89 assertEquals("10.0 m²", SystemOfMeasurement.METRIC.getAreaText(10.01));
90 assertEquals("10.0 m²", SystemOfMeasurement.METRIC.getAreaText(10.049));
91 assertEquals("10.1 m²", SystemOfMeasurement.METRIC.getAreaText(10.050));
92 assertEquals("10.1 m²", SystemOfMeasurement.METRIC.getAreaText(10.051));
93
94 assertEquals("100.0 m²", SystemOfMeasurement.METRIC.getAreaText(99.99));
95 assertEquals("100.0 m²", SystemOfMeasurement.METRIC.getAreaText(100.0));
96 assertEquals("100.0 m²", SystemOfMeasurement.METRIC.getAreaText(100.01));
97
98 assertEquals("1000.0 m²", SystemOfMeasurement.METRIC.getAreaText(999.99));
99 assertEquals("1000.0 m²", SystemOfMeasurement.METRIC.getAreaText(1000.0));
100 assertEquals("1000.0 m²", SystemOfMeasurement.METRIC.getAreaText(1000.01));
101
102 assertEquals("10000.0 m²", SystemOfMeasurement.METRIC.getAreaText(9999.99)); // TODO ? 1.00 ha should be better
103 assertEquals("10000.0 m²", SystemOfMeasurement.METRIC.getAreaText(10000.0)); // TODO ? 1.00 ha should be better
104 assertEquals("1.00 ha", SystemOfMeasurement.METRIC.getAreaText(10000.01));
105
106 assertEquals("10.0 ha", SystemOfMeasurement.METRIC.getAreaText(99999.99));
107 assertEquals("10.0 ha", SystemOfMeasurement.METRIC.getAreaText(100000.0));
108 assertEquals("10.0 ha", SystemOfMeasurement.METRIC.getAreaText(100000.01));
109
110 assertEquals("100.0 ha", SystemOfMeasurement.METRIC.getAreaText(999999.99)); // TODO ? 1.00 km² should be better
111 assertEquals("1.00 km²", SystemOfMeasurement.METRIC.getAreaText(1000000.0));
112 assertEquals("1.00 km²", SystemOfMeasurement.METRIC.getAreaText(1000000.01));
113
114 assertEquals("10.0 km²", SystemOfMeasurement.METRIC.getAreaText(9999999.99));
115 assertEquals("10.0 km²", SystemOfMeasurement.METRIC.getAreaText(10000000.0));
116 assertEquals("10.0 km²", SystemOfMeasurement.METRIC.getAreaText(10000000.01));
117 }
118}
Note: See TracBrowser for help on using the repository browser.