App 2.32.1: drop the cruise control reads; the recorder becomes general

The 2.32.0 recording (ACC set to 101, 90 and 80 km/h behind another car)
found none of it among 1,194 values: the head unit does not get the ACC
data. Removed the cruise log and the set-speed read (EVHardware is as
before 2.27.3); the finding is under "Signals the car does not provide".
The recorder stays as the Signal recorder, for finding other signals.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LhzAVaUyqcw5PkGjz4mWW6
This commit is contained in:
2026-10-25 19:51:42 +01:00
co-authored by Claude Opus 5.5
parent 2e6bb9cb83
commit 703bdfd2a3
16 changed files with 84 additions and 352 deletions
@@ -1,54 +0,0 @@
package com.evsuite.abrp;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import java.util.List;
import org.junit.Test;
/** The cruise control debug log's lines and when it writes one — pure JVM. */
public class CruiseLogTest {
private static List<String[]> readings(String cc, String ica, String dist) {
return Arrays.asList(new String[] { "cc", cc }, new String[] { "ica", ica },
new String[] { "dist", dist });
}
@Test
public void lineHasEveryValue() {
assertEquals("cc 120.00 ica 1 dist 35.20", CruiseLog.values(readings("120.00", "1", "35.20")));
assertEquals("cc unread (not available) ica 0 dist unread",
CruiseLog.values(readings("unread (not available)", "0", "unread")));
}
@Test
public void followedObjectAloneIsNoChange() {
assertEquals(CruiseLog.steady(readings("120.00", "1", "35.20")),
CruiseLog.steady(readings("120.00", "1", "12.00")));
assertFalse(CruiseLog.steady(readings("120.00", "1", "1")).contains("dist"));
}
@Test
public void writesOnChangeAndEveryTwoSecondsWhileDriving() {
String a = CruiseLog.steady(readings("120.00", "1", "35"));
String b = CruiseLog.steady(readings("110.00", "1", "35"));
assertTrue(CruiseLog.due(a, null, 0, 0, false));
assertTrue(CruiseLog.due(b, a, 1000, 500, false));
assertFalse(CruiseLog.due(a, a, 1000, 500, true));
assertTrue(CruiseLog.due(a, a, 2500, 500, true));
// Parked: nothing new, nothing written.
assertFalse(CruiseLog.due(a, a, 60_000, 500, false));
}
@Test
public void drivingIsDOrROrMoving() {
assertTrue(CruiseLog.driving(null, 4));
assertTrue(CruiseLog.driving(0f, 2));
assertTrue(CruiseLog.driving(30f, 3));
assertFalse(CruiseLog.driving(0f, 1));
assertFalse(CruiseLog.driving(null, null));
}
}
@@ -9,20 +9,20 @@ import java.util.TreeMap;
import org.junit.Test;
/** The ACC change recorder's bookkeeping — pure JVM. */
public class AccRecordingTest {
/** The signal recorder's bookkeeping — pure JVM. */
public class SignalRecordingTest {
private static Map<String, String> capture(String speed, String acc) {
private static Map<String, String> capture(String speed, String feature) {
Map<String, String> m = new TreeMap<>();
m.put("speed", speed);
m.put("acc", acc);
m.put("feature", feature);
m.put("steady", "1");
return m;
}
@Test
public void rarestChangeFirst() {
AccRecording r = new AccRecording();
SignalRecording r = new SignalRecording();
r.add(0, capture("10", "0"));
r.add(2000, capture("20", "0"));
r.add(4000, capture("30", "120"));
@@ -30,14 +30,14 @@ public class AccRecordingTest {
r.add(8000, capture("50", "0"));
List<String> summary = r.summary();
assertEquals(2, summary.size());
assertEquals("acc 2× 0 → 120", summary.get(0));
assertEquals("feature 2× 0 → 120", summary.get(0));
assertTrue(summary.get(1).startsWith("speed 4× 10 → 20 → 30 → 40 → 50"));
assertEquals(5, r.captures());
}
@Test
public void appearingAndVanishingKeysAreChanges() {
AccRecording r = new AccRecording();
SignalRecording r = new SignalRecording();
Map<String, String> a = capture("1", "0");
Map<String, String> b = capture("1", "0");
b.put("new", "5");
@@ -50,13 +50,13 @@ public class AccRecordingTest {
@Test
public void longValuesAreShortened() {
String v = "[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]";
assertEquals(AccRecording.VALUE_CHARS, AccRecording.shorten(v).length());
assertEquals("short", AccRecording.shorten("short"));
assertEquals(SignalRecording.VALUE_CHARS, SignalRecording.shorten(v).length());
assertEquals("short", SignalRecording.shorten("short"));
}
@Test
public void firstCaptureIsKeptWhole() {
AccRecording r = new AccRecording();
SignalRecording r = new SignalRecording();
r.add(0, capture("1", "0"));
r.note(500, "key 287 down");
assertEquals(5, r.lines().size());