From b16e9ad9642a9b54971c469927ef302b05be3961 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sat, 18 Oct 2025 21:28:49 +0200 Subject: [PATCH] Cleanup: UintUtilsTest was only partly executed. --- .../opentracks/sensors/UintUtilsTest.java | 52 ++++++++++--------- 1 file changed, 28 insertions(+), 24 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/sensors/UintUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/sensors/UintUtilsTest.java index 63d40834a..9a1689458 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/sensors/UintUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/sensors/UintUtilsTest.java @@ -1,50 +1,54 @@ package de.dennisguse.opentracks.sensors; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertThrows; import org.junit.Test; public class UintUtilsTest { @Test - public void diff() { + public void diff_uint16_valid() { assertEquals(0, UintUtils.diff(1, 1, UintUtils.UINT16_MAX)); assertEquals(1, UintUtils.diff(2, 1, UintUtils.UINT16_MAX)); assertEquals(3, UintUtils.diff(5, 2, UintUtils.UINT16_MAX)); assertEquals(65535, UintUtils.diff(1, 2, UintUtils.UINT16_MAX)); /* unsigned 16 arithmetic is modulo UINT16_MAX + 1, not modulo UINT16_MAX */ assertEquals(65530, UintUtils.diff(UintUtils.UINT16_MAX, 5, UintUtils.UINT16_MAX)); + } + @Test + public void diff_uint16_invalid() { /* Test modulo arithmetic for arguments that are out of range */ + assertThrows(RuntimeException.class, () -> UintUtils.diff(65537, 1, UintUtils.UINT16_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(1, 65537, UintUtils.UINT16_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(65537, 65537, UintUtils.UINT16_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(-65535, 1, UintUtils.UINT16_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(1, -65535, UintUtils.UINT16_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(-65535, -65535, UintUtils.UINT16_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(-65535, 65537, UintUtils.UINT16_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(65537, -65535, UintUtils.UINT16_MAX)); + } - if (false) { /* false means UintUtils.diff() throws if arguments out of range */ - assertEquals(0, UintUtils.diff(65537, 1, UintUtils.UINT16_MAX)); - assertEquals(0, UintUtils.diff(1, 65537, UintUtils.UINT16_MAX)); - assertEquals(0, UintUtils.diff(65537, 65537, UintUtils.UINT16_MAX)); - assertEquals(0, UintUtils.diff(-65535, 1, UintUtils.UINT16_MAX)); - assertEquals(0, UintUtils.diff(1, -65535, UintUtils.UINT16_MAX)); - assertEquals(0, UintUtils.diff(-65535, -65535, UintUtils.UINT16_MAX)); - assertEquals(0, UintUtils.diff(-65535, 65537, UintUtils.UINT16_MAX)); - assertEquals(0, UintUtils.diff(65537, -65535, UintUtils.UINT16_MAX)); - } - - /* The following tests are the above, but for 32-bit unsigned. */ - + @Test + public void diff_uint32() { assertEquals(0, UintUtils.diff(1, 1, UintUtils.UINT32_MAX)); assertEquals(1, UintUtils.diff(2, 1, UintUtils.UINT32_MAX)); assertEquals(3, UintUtils.diff(5, 2, UintUtils.UINT32_MAX)); assertEquals(4294967295L, UintUtils.diff(1, 2, UintUtils.UINT32_MAX)); assertEquals(4294967290L, UintUtils.diff(UintUtils.UINT32_MAX, 5, UintUtils.UINT32_MAX)); + } - if (false) { /* false means UintUtils.diff() throws if arguments out of range */ - assertEquals(0, UintUtils.diff(4294967297L, 1, UintUtils.UINT32_MAX)); - assertEquals(0, UintUtils.diff(1, 4294967297L, UintUtils.UINT32_MAX)); - assertEquals(0, UintUtils.diff(4294967297L, 4294967297L, UintUtils.UINT32_MAX)); - assertEquals(0, UintUtils.diff(-4294967295L, 1, UintUtils.UINT32_MAX)); - assertEquals(0, UintUtils.diff(1, -4294967295L, UintUtils.UINT32_MAX)); - assertEquals(0, UintUtils.diff(-4294967295L, -4294967295L, UintUtils.UINT32_MAX)); - assertEquals(0, UintUtils.diff(-4294967295L, 4294967297L, UintUtils.UINT32_MAX)); - assertEquals(0, UintUtils.diff(65537, -4294967297L, UintUtils.UINT32_MAX)); - } + @Test + public void diff_unint32_invalid() { + /* Test modulo arithmetic for arguments that are out of range */ + assertThrows(RuntimeException.class, () -> UintUtils.diff(4294967297L, 1, UintUtils.UINT32_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(1, 4294967297L, UintUtils.UINT32_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(4294967297L, 4294967297L, UintUtils.UINT32_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(-4294967295L, 1, UintUtils.UINT32_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(1, -4294967295L, UintUtils.UINT32_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(-4294967295L, -4294967295L, UintUtils.UINT32_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(-4294967295L, 4294967297L, UintUtils.UINT32_MAX)); + assertThrows(RuntimeException.class, () -> UintUtils.diff(65537, -4294967297L, UintUtils.UINT32_MAX)); } @Test