From 154e6bc520beec8912a4fc62cbb85e6b797ec252 Mon Sep 17 00:00:00 2001
From: "Brady J. Garvin" <bgarvin@cse.unl.edu>
Date: Tue, 7 Nov 2023 21:50:41 -0600
Subject: [PATCH] Fixed wrong oracles and a missing helper function in the
 periodic-signal code.

---
 homework-4/src/signal.js      |  14 ++
 homework-4/src/signal.test.js | 340 +++++++++++++++++-----------------
 2 files changed, 184 insertions(+), 170 deletions(-)

diff --git a/homework-4/src/signal.js b/homework-4/src/signal.js
index c25082d..603cee2 100644
--- a/homework-4/src/signal.js
+++ b/homework-4/src/signal.js
@@ -1,6 +1,20 @@
+/* IMPORTANT: Remove this directive when you start working on the code so that
+ * the linter will warn you about code style issues. */
+/* eslint-disable no-unused-vars */
+
 export const UNKNOWN = 'UNKNOWN';
 export const INCONSISTENT = 'INCONSISTENT';
 
+function join(leftPeriod, rightPeriod) {
+  if (leftPeriod === UNKNOWN) {
+    return rightPeriod;
+  }
+  if (rightPeriod === UNKNOWN || rightPeriod === leftPeriod) {
+    return leftPeriod;
+  }
+  return INCONSISTENT;
+}
+
 class MonoidElement {
   constructor() {
     this.period = UNKNOWN; // Implement this constructor per the assignment instructions.
diff --git a/homework-4/src/signal.test.js b/homework-4/src/signal.test.js
index f102929..65aafdc 100644
--- a/homework-4/src/signal.test.js
+++ b/homework-4/src/signal.test.js
@@ -18,7 +18,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with one thread', async() => {
     const signals = [
@@ -83,14 +83,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with one thread', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with one thread', async() => {
     const signals = [
@@ -105,7 +105,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with one thread', async() => {
     const signals = [
@@ -121,7 +121,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with one thread', async() => {
     const signals = [
@@ -129,7 +129,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with one thread', async() => {
     const signals = [
@@ -137,7 +137,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with one thread', async() => {
     const signals = [
@@ -162,7 +162,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with one thread', async() => {
     const signals = [
@@ -171,7 +171,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with one thread', async() => {
     const signals = [
@@ -199,7 +199,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with one thread', async() => {
     const signals = [
@@ -219,7 +219,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with one thread', async() => {
     const signals = [
@@ -250,7 +250,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with one thread', async() => {
     const signals = [
@@ -261,7 +261,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with one thread', async() => {
     const signals = [
@@ -308,7 +308,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with one thread', async() => {
     const signals = [
@@ -334,7 +334,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with one thread', async() => {
     const signals = [
@@ -347,7 +347,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with one thread', async() => {
     const signals = [
@@ -374,7 +374,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with one thread', async() => {
     const signals = [
@@ -389,7 +389,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with one thread', async() => {
     const signals = [
@@ -405,7 +405,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with one thread', async() => {
     const signals = [
@@ -421,7 +421,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with one thread', async() => {
     const signals = [
@@ -475,7 +475,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with one thread', async() => {
     const signals = [
@@ -512,7 +512,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with one thread', async() => {
     const signals = [
@@ -531,7 +531,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with one thread', async() => {
     const signals = [
@@ -551,7 +551,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with one thread', async() => {
     const signals = [
@@ -615,7 +615,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with one thread', async() => {
     const signals = [
@@ -637,7 +637,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with one thread', async() => {
     const signals = [
@@ -660,7 +660,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with one thread', async() => {
     const signals = [
@@ -683,7 +683,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with one thread', async() => {
     const signals = [
@@ -707,7 +707,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with one thread', async() => {
     const signals = [
@@ -756,7 +756,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with one thread', async() => {
     const signals = [
@@ -782,7 +782,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with one thread', async() => {
     const signals = [
@@ -837,7 +837,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with one thread', async() => {
     const signals = [
@@ -898,7 +898,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with one thread', async() => {
     const signals = [
@@ -965,7 +965,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 1)).period).toBe(15);
   });
   test('does not claim to find a period in signal sequence #0 with two threads', async() => {
     const signals = [
@@ -983,7 +983,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with two threads', async() => {
     const signals = [
@@ -1048,14 +1048,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with two threads', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with two threads', async() => {
     const signals = [
@@ -1070,7 +1070,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with two threads', async() => {
     const signals = [
@@ -1086,7 +1086,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with two threads', async() => {
     const signals = [
@@ -1094,7 +1094,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with two threads', async() => {
     const signals = [
@@ -1102,7 +1102,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with two threads', async() => {
     const signals = [
@@ -1127,7 +1127,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with two threads', async() => {
     const signals = [
@@ -1136,7 +1136,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with two threads', async() => {
     const signals = [
@@ -1164,7 +1164,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with two threads', async() => {
     const signals = [
@@ -1184,7 +1184,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with two threads', async() => {
     const signals = [
@@ -1215,7 +1215,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with two threads', async() => {
     const signals = [
@@ -1226,7 +1226,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with two threads', async() => {
     const signals = [
@@ -1273,7 +1273,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with two threads', async() => {
     const signals = [
@@ -1299,7 +1299,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with two threads', async() => {
     const signals = [
@@ -1312,7 +1312,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with two threads', async() => {
     const signals = [
@@ -1339,7 +1339,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with two threads', async() => {
     const signals = [
@@ -1354,7 +1354,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with two threads', async() => {
     const signals = [
@@ -1370,7 +1370,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with two threads', async() => {
     const signals = [
@@ -1386,7 +1386,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with two threads', async() => {
     const signals = [
@@ -1440,7 +1440,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with two threads', async() => {
     const signals = [
@@ -1477,7 +1477,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with two threads', async() => {
     const signals = [
@@ -1496,7 +1496,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with two threads', async() => {
     const signals = [
@@ -1516,7 +1516,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with two threads', async() => {
     const signals = [
@@ -1580,7 +1580,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with two threads', async() => {
     const signals = [
@@ -1602,7 +1602,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with two threads', async() => {
     const signals = [
@@ -1625,7 +1625,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with two threads', async() => {
     const signals = [
@@ -1648,7 +1648,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with two threads', async() => {
     const signals = [
@@ -1672,7 +1672,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with two threads', async() => {
     const signals = [
@@ -1721,7 +1721,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with two threads', async() => {
     const signals = [
@@ -1747,7 +1747,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with two threads', async() => {
     const signals = [
@@ -1802,7 +1802,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with two threads', async() => {
     const signals = [
@@ -1863,7 +1863,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with two threads', async() => {
     const signals = [
@@ -1930,7 +1930,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 2)).period).toBe(15);
   });
   test('does not claim to find a period in signal sequence #0 with three threads', async() => {
     const signals = [
@@ -1948,7 +1948,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with three threads', async() => {
     const signals = [
@@ -2013,14 +2013,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with three threads', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with three threads', async() => {
     const signals = [
@@ -2035,7 +2035,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with three threads', async() => {
     const signals = [
@@ -2051,7 +2051,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with three threads', async() => {
     const signals = [
@@ -2059,7 +2059,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with three threads', async() => {
     const signals = [
@@ -2067,7 +2067,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with three threads', async() => {
     const signals = [
@@ -2092,7 +2092,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with three threads', async() => {
     const signals = [
@@ -2101,7 +2101,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with three threads', async() => {
     const signals = [
@@ -2129,7 +2129,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with three threads', async() => {
     const signals = [
@@ -2149,7 +2149,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with three threads', async() => {
     const signals = [
@@ -2180,7 +2180,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with three threads', async() => {
     const signals = [
@@ -2191,7 +2191,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with three threads', async() => {
     const signals = [
@@ -2238,7 +2238,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with three threads', async() => {
     const signals = [
@@ -2264,7 +2264,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with three threads', async() => {
     const signals = [
@@ -2277,7 +2277,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with three threads', async() => {
     const signals = [
@@ -2304,7 +2304,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with three threads', async() => {
     const signals = [
@@ -2319,7 +2319,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with three threads', async() => {
     const signals = [
@@ -2335,7 +2335,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with three threads', async() => {
     const signals = [
@@ -2351,7 +2351,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with three threads', async() => {
     const signals = [
@@ -2405,7 +2405,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with three threads', async() => {
     const signals = [
@@ -2442,7 +2442,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with three threads', async() => {
     const signals = [
@@ -2461,7 +2461,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with three threads', async() => {
     const signals = [
@@ -2481,7 +2481,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with three threads', async() => {
     const signals = [
@@ -2545,7 +2545,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with three threads', async() => {
     const signals = [
@@ -2567,7 +2567,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with three threads', async() => {
     const signals = [
@@ -2590,7 +2590,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with three threads', async() => {
     const signals = [
@@ -2613,7 +2613,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with three threads', async() => {
     const signals = [
@@ -2637,7 +2637,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with three threads', async() => {
     const signals = [
@@ -2686,7 +2686,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with three threads', async() => {
     const signals = [
@@ -2712,7 +2712,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with three threads', async() => {
     const signals = [
@@ -2767,7 +2767,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with three threads', async() => {
     const signals = [
@@ -2828,7 +2828,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with three threads', async() => {
     const signals = [
@@ -2895,7 +2895,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 3)).period).toBe(15);
   });
   test('does not claim to find a period in signal sequence #0 with four threads', async() => {
     const signals = [
@@ -2913,7 +2913,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with four threads', async() => {
     const signals = [
@@ -2978,14 +2978,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with four threads', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with four threads', async() => {
     const signals = [
@@ -3000,7 +3000,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with four threads', async() => {
     const signals = [
@@ -3016,7 +3016,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with four threads', async() => {
     const signals = [
@@ -3024,7 +3024,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with four threads', async() => {
     const signals = [
@@ -3032,7 +3032,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with four threads', async() => {
     const signals = [
@@ -3057,7 +3057,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with four threads', async() => {
     const signals = [
@@ -3066,7 +3066,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with four threads', async() => {
     const signals = [
@@ -3094,7 +3094,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with four threads', async() => {
     const signals = [
@@ -3114,7 +3114,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with four threads', async() => {
     const signals = [
@@ -3145,7 +3145,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with four threads', async() => {
     const signals = [
@@ -3156,7 +3156,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with four threads', async() => {
     const signals = [
@@ -3203,7 +3203,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with four threads', async() => {
     const signals = [
@@ -3229,7 +3229,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with four threads', async() => {
     const signals = [
@@ -3242,7 +3242,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with four threads', async() => {
     const signals = [
@@ -3269,7 +3269,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with four threads', async() => {
     const signals = [
@@ -3284,7 +3284,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with four threads', async() => {
     const signals = [
@@ -3300,7 +3300,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with four threads', async() => {
     const signals = [
@@ -3316,7 +3316,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with four threads', async() => {
     const signals = [
@@ -3370,7 +3370,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with four threads', async() => {
     const signals = [
@@ -3407,7 +3407,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with four threads', async() => {
     const signals = [
@@ -3426,7 +3426,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with four threads', async() => {
     const signals = [
@@ -3446,7 +3446,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with four threads', async() => {
     const signals = [
@@ -3510,7 +3510,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with four threads', async() => {
     const signals = [
@@ -3532,7 +3532,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with four threads', async() => {
     const signals = [
@@ -3555,7 +3555,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with four threads', async() => {
     const signals = [
@@ -3578,7 +3578,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with four threads', async() => {
     const signals = [
@@ -3602,7 +3602,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with four threads', async() => {
     const signals = [
@@ -3651,7 +3651,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with four threads', async() => {
     const signals = [
@@ -3677,7 +3677,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with four threads', async() => {
     const signals = [
@@ -3732,7 +3732,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with four threads', async() => {
     const signals = [
@@ -3793,7 +3793,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with four threads', async() => {
     const signals = [
@@ -3860,7 +3860,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 4)).period).toBe(15);
   });
   test('does not claim to find a period in signal sequence #0 with five threads', async() => {
     const signals = [
@@ -3878,7 +3878,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
     const signals = [
       true, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(0);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(1);
   });
   test('does not claim to find a period in signal sequence #3 with five threads', async() => {
     const signals = [
@@ -3943,14 +3943,14 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, true, false, false,
       false, true, false, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(3);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(4);
   });
   test('finds a period of 7 in signal sequence #13 with five threads', async() => {
     const signals = [
       false, false, true, false, false, false, false, false,
       false, false, true, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
   });
   test('finds an inconsistent period in signal sequence #14 with five threads', async() => {
     const signals = [
@@ -3965,7 +3965,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #16 with five threads', async() => {
     const signals = [
@@ -3981,7 +3981,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(2);
   });
   test('finds a period of 1 in signal sequence #18 with five threads', async() => {
     const signals = [
@@ -3989,7 +3989,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, true, false, true, false, true, false,
       true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(1);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(2);
   });
   test('finds a period of 9 in signal sequence #19 with five threads', async() => {
     const signals = [
@@ -3997,7 +3997,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
   });
   test('finds an inconsistent period in signal sequence #20 with five threads', async() => {
     const signals = [
@@ -4022,7 +4022,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds a period of 4 in signal sequence #23 with five threads', async() => {
     const signals = [
@@ -4031,7 +4031,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, true,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(4);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(5);
   });
   test('finds an inconsistent period in signal sequence #24 with five threads', async() => {
     const signals = [
@@ -4059,7 +4059,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #27 with five threads', async() => {
     const signals = [
@@ -4079,7 +4079,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, true, false, false, true, false,
       false, true, false, false, true, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(2);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(3);
   });
   test('finds an inconsistent period in signal sequence #29 with five threads', async() => {
     const signals = [
@@ -4110,7 +4110,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
   });
   test('finds a period of 10 in signal sequence #32 with five threads', async() => {
     const signals = [
@@ -4121,7 +4121,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #33 with five threads', async() => {
     const signals = [
@@ -4168,7 +4168,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, true,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
   });
   test('finds an inconsistent period in signal sequence #37 with five threads', async() => {
     const signals = [
@@ -4194,7 +4194,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
   });
   test('finds a period of 15 in signal sequence #39 with five threads', async() => {
     const signals = [
@@ -4207,7 +4207,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #40 with five threads', async() => {
     const signals = [
@@ -4234,7 +4234,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
   });
   test('finds a period of 12 in signal sequence #42 with five threads', async() => {
     const signals = [
@@ -4249,7 +4249,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #43 with five threads', async() => {
     const signals = [
@@ -4265,7 +4265,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
   });
   test('finds a period of 5 in signal sequence #44 with five threads', async() => {
     const signals = [
@@ -4281,7 +4281,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, true, false,
       false, false, false, false, true, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(5);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(6);
   });
   test('finds an inconsistent period in signal sequence #45 with five threads', async() => {
     const signals = [
@@ -4335,7 +4335,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(11);
   });
   test('finds an inconsistent period in signal sequence #48 with five threads', async() => {
     const signals = [
@@ -4372,7 +4372,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds a period of 7 in signal sequence #50 with five threads', async() => {
     const signals = [
@@ -4391,7 +4391,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(7);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
   });
   test('finds a period of 15 in signal sequence #51 with five threads', async() => {
     const signals = [
@@ -4411,7 +4411,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       true, false, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #52 with five threads', async() => {
     const signals = [
@@ -4475,7 +4475,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, true, false, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
   });
   test('finds a period of 10 in signal sequence #55 with five threads', async() => {
     const signals = [
@@ -4497,7 +4497,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(11);
   });
   test('finds a period of 12 in signal sequence #56 with five threads', async() => {
     const signals = [
@@ -4520,7 +4520,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(12);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(13);
   });
   test('finds a period of 8 in signal sequence #57 with five threads', async() => {
     const signals = [
@@ -4543,7 +4543,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, true, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(8);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
   });
   test('finds a period of 11 in signal sequence #58 with five threads', async() => {
     const signals = [
@@ -4567,7 +4567,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(11);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(12);
   });
   test('finds an inconsistent period in signal sequence #59 with five threads', async() => {
     const signals = [
@@ -4616,7 +4616,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, true, false, false, false, false, false, false,
       false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(9);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(10);
   });
   test('finds a period of 15 in signal sequence #61 with five threads', async() => {
     const signals = [
@@ -4642,7 +4642,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, false, false,
       false, false, false, false, false, false, false, true,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(16);
   });
   test('finds an inconsistent period in signal sequence #62 with five threads', async() => {
     const signals = [
@@ -4697,7 +4697,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, true, false, false, false, false, false,
       false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(13);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(14);
   });
   test('finds an inconsistent period in signal sequence #64 with five threads', async() => {
     const signals = [
@@ -4758,7 +4758,7 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, false, false, true, false,
       false, false, false, false, false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
   });
   test('finds an inconsistent period in signal sequence #66 with five threads', async() => {
     const signals = [
@@ -4825,6 +4825,6 @@ describe('map-reduce with the periodic-signal monoid', () => {
       false, false, false, false, true, false, false, false,
       false, false, false,
     ];
-    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(14);
+    expect((await parallelMapReduce('./signal.js', signals, 5)).period).toBe(15);
   });
 });
-- 
GitLab