mirror of
https://codeberg.org/OpenTracksApp/OpenTracks.git
synced 2026-10-03 01:53:05 +02:00
Improve ChartValueSeries
This commit is contained in:
@@ -15,36 +15,33 @@
|
||||
*/
|
||||
package com.google.android.apps.mytracks;
|
||||
|
||||
import com.google.android.apps.mytracks.ChartValueSeries.ZoomSettings;
|
||||
import com.google.android.apps.mytracks.ChartValueSeries.YAxisDimension;
|
||||
import com.google.android.maps.mytracks.R;
|
||||
|
||||
import android.graphics.Paint.Style;
|
||||
import android.test.AndroidTestCase;
|
||||
|
||||
/**
|
||||
* Tests {@link ChartValueSeries}.
|
||||
*
|
||||
* @author Sandor Dornbush
|
||||
*/
|
||||
public class ChartValueSeriesTest extends AndroidTestCase {
|
||||
private ChartValueSeries series;
|
||||
|
||||
|
||||
@Override
|
||||
protected void setUp() throws Exception {
|
||||
series = new ChartValueSeries(getContext(),
|
||||
R.color.elevation_fill,
|
||||
R.color.elevation_border,
|
||||
new ZoomSettings(5, new int[] {100}),
|
||||
R.string.stats_elevation);
|
||||
YAxisDimension yAxisDimension = new YAxisDimension(
|
||||
5, Integer.MIN_VALUE, Integer.MAX_VALUE, new int[] { 100 });
|
||||
series = new ChartValueSeries(getContext(), R.color.elevation_fill, R.color.elevation_border,
|
||||
yAxisDimension, R.string.stats_elevation);
|
||||
}
|
||||
|
||||
public void testInitialConditions() {
|
||||
assertEquals(0, series.getInterval());
|
||||
assertEquals(1, series.getInterval());
|
||||
assertEquals(1, series.getMaxLabelLength());
|
||||
assertEquals(0, series.getMin());
|
||||
assertEquals(0, series.getMax());
|
||||
assertEquals(0.0, series.getSpread());
|
||||
assertEquals(Style.STROKE, series.getPaint().getStyle());
|
||||
assertEquals(getContext().getString(R.string.stats_elevation),
|
||||
series.getTitle());
|
||||
assertEquals(1, series.getMax());
|
||||
assertEquals(getContext().getString(R.string.stats_elevation), series.getTitle());
|
||||
assertTrue(series.isEnabled());
|
||||
}
|
||||
|
||||
@@ -52,7 +49,7 @@ public class ChartValueSeriesTest extends AndroidTestCase {
|
||||
series.setEnabled(false);
|
||||
assertFalse(series.isEnabled());
|
||||
}
|
||||
|
||||
|
||||
public void testSmallUpdates() {
|
||||
series.update(0);
|
||||
series.update(10);
|
||||
@@ -61,7 +58,6 @@ public class ChartValueSeriesTest extends AndroidTestCase {
|
||||
assertEquals(3, series.getMaxLabelLength());
|
||||
assertEquals(0, series.getMin());
|
||||
assertEquals(100, series.getMax());
|
||||
assertEquals(100.0, series.getSpread());
|
||||
}
|
||||
|
||||
public void testBigUpdates() {
|
||||
@@ -72,7 +68,6 @@ public class ChartValueSeriesTest extends AndroidTestCase {
|
||||
assertEquals(5, series.getMaxLabelLength());
|
||||
assertEquals(0, series.getMin());
|
||||
assertEquals(1000, series.getMax());
|
||||
assertEquals(1000.0, series.getSpread());
|
||||
}
|
||||
|
||||
public void testNotZeroBasedUpdates() {
|
||||
@@ -83,56 +78,26 @@ public class ChartValueSeriesTest extends AndroidTestCase {
|
||||
assertEquals(5, series.getMaxLabelLength());
|
||||
assertEquals(500, series.getMin());
|
||||
assertEquals(1500, series.getMax());
|
||||
assertEquals(1000.0, series.getSpread());
|
||||
}
|
||||
|
||||
public void testZoomSettings_invalidArgs() {
|
||||
try {
|
||||
new ZoomSettings(0, new int[] {10, 50, 100});
|
||||
fail("Expected IllegalArgumentException");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// OK.
|
||||
}
|
||||
try {
|
||||
new ZoomSettings(1, null);
|
||||
fail("Expected IllegalArgumentException");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// OK.
|
||||
}
|
||||
try {
|
||||
new ZoomSettings(1, new int[] {});
|
||||
fail("Expected IllegalArgumentException");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// OK.
|
||||
}
|
||||
try {
|
||||
new ZoomSettings(1, new int[] {1, 3, 2});
|
||||
fail("Expected IllegalArgumentException");
|
||||
} catch (IllegalArgumentException e) {
|
||||
// OK.
|
||||
}
|
||||
}
|
||||
|
||||
public void testZoomSettings_minAligned() {
|
||||
ZoomSettings settings = new ZoomSettings(5, new int[] {10, 50, 100});
|
||||
assertEquals(10, settings.calculateInterval(0, 15));
|
||||
assertEquals(10, settings.calculateInterval(0, 50));
|
||||
assertEquals(50, settings.calculateInterval(0, 111));
|
||||
assertEquals(50, settings.calculateInterval(0, 250));
|
||||
assertEquals(100, settings.calculateInterval(0, 251));
|
||||
assertEquals(100, settings.calculateInterval(0, 10000));
|
||||
public void testYAxisDimension_minAligned() {
|
||||
YAxisDimension yAxisDimension = new YAxisDimension(
|
||||
5, Integer.MIN_VALUE, Integer.MAX_VALUE, new int[] { 10, 50, 100 });
|
||||
assertEquals(10, yAxisDimension.getYAxisDimension(0, 15)[0]);
|
||||
assertEquals(10, yAxisDimension.getYAxisDimension(0, 50)[0]);
|
||||
assertEquals(50, yAxisDimension.getYAxisDimension(0, 111)[0]);
|
||||
assertEquals(50, yAxisDimension.getYAxisDimension(0, 250)[0]);
|
||||
assertEquals(100, yAxisDimension.getYAxisDimension(0, 251)[0]);
|
||||
assertEquals(100, yAxisDimension.getYAxisDimension(0, 10000)[0]);
|
||||
}
|
||||
|
||||
public void testZoomSettings_minNotAligned() {
|
||||
ZoomSettings settings = new ZoomSettings(5, new int[] {10, 50, 100});
|
||||
assertEquals(50, settings.calculateInterval(5, 55));
|
||||
assertEquals(10, settings.calculateInterval(10, 60));
|
||||
assertEquals(50, settings.calculateInterval(7, 250));
|
||||
assertEquals(100, settings.calculateInterval(7, 257));
|
||||
assertEquals(100, settings.calculateInterval(11, 10000));
|
||||
|
||||
// A regression test.
|
||||
settings = new ZoomSettings(5, new int[] {5, 10, 20});
|
||||
assertEquals(10, settings.calculateInterval(-37.14, -11.89));
|
||||
public void testYAxisDimension_minNotAligned() {
|
||||
YAxisDimension settings = new YAxisDimension(
|
||||
5, Integer.MIN_VALUE, Integer.MAX_VALUE, new int[] { 10, 50, 100 });
|
||||
assertEquals(50, settings.getYAxisDimension(5, 55)[0]);
|
||||
assertEquals(10, settings.getYAxisDimension(10, 60)[0]);
|
||||
assertEquals(50, settings.getYAxisDimension(7, 250)[0]);
|
||||
assertEquals(100, settings.getYAxisDimension(7, 257)[0]);
|
||||
assertEquals(100, settings.getYAxisDimension(11, 10000)[0]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user