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

Last change on this file since 6422 was 6422, checked in by simon04, 10 years ago

see #9331 - allow custom formatters in SystemOfMeasurement methods

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