Files
mg4/app/src/test/java/com/evsuite/abrp/OverviewStyleTest.java
T
nilsandClaude Opus 5.5 65dc1ba847 App 2.39.0, server 2.7.0: Grid with map
A new Overview style: the Grid over the roads round the car from
OpenStreetMap, drawn in the floor's perspective, heading up, the bigger
roads glowing brighter, the car as a chevron.

Server: POST /v1/map/roads {z:14,x,y} fetches a tile's drivable roads
from Overpass (OVERPASS_URL; one request at a time, at least a second
apart), simplifies them to tile-local points in four classes, caches
them for 30 days and never logs the tile.

App: MapRoads keeps the 3x3 tiles round the car from its own cache or
the server; GPS only while the style is shown; bearing from the GPS or
from successive positions. Without GPS, server or roads the plain floor
says why. OSM attribution on screen and in LICENSE.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
2026-10-26 23:34:21 +01:00

71 lines
3.1 KiB
Java

package com.evsuite.abrp;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
/** The Overview styles — pure JVM. */
public class OverviewStyleTest {
@Test
public void storedValuesRoundTrip() {
for (OverviewStyle style : OverviewStyle.values()) {
assertEquals(style, OverviewStyle.fromPref(style.name()));
}
}
@Test
public void oldAndUnknownValues() {
assertEquals(OverviewStyle.GAUGES, OverviewStyle.fromPref("DASHBOARD"));
assertEquals(OverviewStyle.RETRO, OverviewStyle.fromPref("RETRO_ACCENT"));
assertEquals(OverviewStyle.TERMINAL, OverviewStyle.fromPref("TERMINAL_ACCENT"));
assertTrue(OverviewStyle.wasAccentEntry("RETRO_ACCENT"));
assertFalse(OverviewStyle.wasAccentEntry("RETRO"));
assertEquals(OverviewStyle.TILES, OverviewStyle.fromPref(null));
assertEquals(OverviewStyle.TILES, OverviewStyle.fromPref("NOPE"));
}
@Test
public void colourOptions() {
assertTrue(OverviewStyle.TILES.usesAccent);
assertFalse(OverviewStyle.TILES.hasOriginal);
assertTrue(OverviewStyle.RETRO.usesAccent);
assertTrue(OverviewStyle.RETRO.hasOriginal);
assertTrue(OverviewStyle.TERMINAL.hasOriginal);
assertFalse(OverviewStyle.CARTOON.usesAccent);
assertFalse(OverviewStyle.NIXIE.usesAccent);
assertTrue(OverviewStyle.CHRONOGRAPH.usesAccent);
}
@Test
public void removedStylesFallBackToTiles() {
assertEquals(OverviewStyle.TILES, OverviewStyle.fromPref("MASCOT"));
assertEquals(OverviewStyle.TILES, OverviewStyle.fromPref("BLUEPRINT"));
assertEquals(OverviewStyle.TILES, OverviewStyle.fromPref("AVIATION"));
}
@Test
public void ownPaletteForTheApp() {
// Fixed palettes always; Retro and Terminal only with "Original colours".
assertTrue(OverviewStyle.CARTOON.showsOwnPalette(false));
assertTrue(OverviewStyle.RETRO.showsOwnPalette(true));
assertFalse(OverviewStyle.RETRO.showsOwnPalette(false));
assertFalse(OverviewStyle.CHRONOGRAPH.showsOwnPalette(true));
// Every style shown in its own palette has the app's matching colours.
for (OverviewStyle style : OverviewStyle.values()) {
if (style.showsOwnPalette(true)) assertTrue(style.name(), StylePalette.overlay(style) != 0);
else assertEquals(style.name(), 0, StylePalette.overlay(style));
}
assertEquals(AccentColor.HOLBORN_BLUE.overlay,
StylePalette.appOverlay(OverviewStyle.RETRO, false, AccentColor.HOLBORN_BLUE));
assertEquals(R.style.ThemeOverlay_EV_Style_Retro,
StylePalette.appOverlay(OverviewStyle.RETRO, true, AccentColor.HOLBORN_BLUE));
assertEquals("original_colours_RETRO", OverviewStyle.RETRO.originalKey());
// Grid with map shares the Grid's choice.
assertEquals(OverviewStyle.GRID.originalKey(), OverviewStyle.GRID_MAP.originalKey());
assertEquals(StylePalette.overlay(OverviewStyle.GRID), StylePalette.overlay(OverviewStyle.GRID_MAP));
}
}