summaryrefslogtreecommitdiff
path: root/app/src/test/java/com/tomcooks
diff options
context:
space:
mode:
authorTom Cooks <tommasogagliardi+github@gmail.com>2026-10-10 15:42:04 -0400
committerTom Cooks <tommasogagliardi+github@gmail.com>2026-10-10 15:42:04 -0400
commit901bf58c5cf9151942f8c4cd4e1427a02dec4b52 (patch)
treee9e312fb9893881f142a6f79e30417cd0c3f2be8 /app/src/test/java/com/tomcooks
parent6db1714d0354d1e1105e330ce84c46a54487c3bb (diff)
downloadreccoon-901bf58c5cf9151942f8c4cd4e1427a02dec4b52.tar.gz
RECCoon 1.0.0: rebrand to Tom Cooks, Parakeet-only, GPLv3, F-Droid-ready
Diffstat (limited to 'app/src/test/java/com/tomcooks')
-rw-r--r--app/src/test/java/com/tomcooks/reccoon/FormatsTest.java20
-rw-r--r--app/src/test/java/com/tomcooks/reccoon/StreamingResamplerTest.java41
2 files changed, 61 insertions, 0 deletions
diff --git a/app/src/test/java/com/tomcooks/reccoon/FormatsTest.java b/app/src/test/java/com/tomcooks/reccoon/FormatsTest.java
new file mode 100644
index 0000000..96427a1
--- /dev/null
+++ b/app/src/test/java/com/tomcooks/reccoon/FormatsTest.java
@@ -0,0 +1,20 @@
+package com.tomcooks.reccoon;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+public class FormatsTest {
+
+ @Test
+ public void prettyNameStripsWavExtension() {
+ assertEquals("2026-10-05 09:30:00 #00012",
+ Formats.prettyName("reccoon-2026-10-05-093000-00012.wav"));
+ }
+
+ @Test
+ public void prettyNameStripsM4aExtension() {
+ assertEquals("2026-10-05 09:30:00 #00012",
+ Formats.prettyName("reccoon-2026-10-05-093000-00012.m4a"));
+ }
+}
diff --git a/app/src/test/java/com/tomcooks/reccoon/StreamingResamplerTest.java b/app/src/test/java/com/tomcooks/reccoon/StreamingResamplerTest.java
new file mode 100644
index 0000000..4c44a44
--- /dev/null
+++ b/app/src/test/java/com/tomcooks/reccoon/StreamingResamplerTest.java
@@ -0,0 +1,41 @@
+package com.tomcooks.reccoon;
+
+import static org.junit.Assert.assertTrue;
+
+import org.junit.Test;
+
+import java.util.Random;
+
+/** Regression tests for the streaming resampler. */
+public class StreamingResamplerTest {
+
+ @Test
+ public void longStreamOfFullChunksDoesNotThrow() {
+ StreamingResampler resampler = new StreamingResampler(44100, 16000);
+ float[] chunk = new float[8192];
+ long total = 0;
+ for (int i = 0; i < 400; i++) {
+ for (int j = 0; j < chunk.length; j++) {
+ chunk[j] = (float) Math.sin((i * 8192 + j) * 0.01);
+ }
+ total += resampler.process(chunk).length;
+ }
+ assertTrue(total > 1_000_000);
+ }
+
+ @Test
+ public void oddChunkSizesDoNotThrow() {
+ StreamingResampler resampler = new StreamingResampler(44100, 16000);
+ Random random = new Random(1);
+ long total = 0;
+ for (int i = 0; i < 3000; i++) {
+ int n = 1 + random.nextInt(3000);
+ float[] chunk = new float[n];
+ for (int j = 0; j < n; j++) {
+ chunk[j] = random.nextFloat() * 2f - 1f;
+ }
+ total += resampler.process(chunk).length;
+ }
+ assertTrue(total > 0);
+ }
+}