From 12dcd5fd89d551626dd87c24bf0a976eabd0e37c Mon Sep 17 00:00:00 2001 From: Derk-Jan Karrenbeld Date: Sun, 27 Jul 2025 15:48:13 +0200 Subject: [PATCH 1/2] This probably fixes the random overrides --- .../concept/captains-log/captains-log.spec.js | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/exercises/concept/captains-log/captains-log.spec.js b/exercises/concept/captains-log/captains-log.spec.js index 5cfd79d0bb..dee5246993 100644 --- a/exercises/concept/captains-log/captains-log.spec.js +++ b/exercises/concept/captains-log/captains-log.spec.js @@ -1,4 +1,4 @@ -import { describe, expect, test } from '@jest/globals'; +import { describe, expect, test, beforeEach, afterEach } from '@jest/globals'; import { randomShipRegistryNumber, randomStardate, @@ -33,24 +33,33 @@ function loadDie(...values) { } describe('randomStardate', () => { - test('stardate is between 41000 and 42000', () => { + let restore; + + beforeEach(() => { const min = 0; const max = 1 - Number.EPSILON * 32; // prettier-ignore - const restore = loadDie( + restore = loadDie( min, min, min, min, min, min, max, max, max, max, max, max, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5 ); + }); + + afterEach(() => { + if (restore) { + restore(); + restore = undefined; + } + }); + test('stardate is between 41000 and 42000', () => { for (let i = 0; i < 10_000; i++) { const starDate = randomStardate(); expect(starDate).toBeGreaterThanOrEqual(41_000); expect(starDate).toBeLessThan(42_000); } - - restore(); }); }); From 26d9387f4cf6face96a52ab41f79522afc52ba99 Mon Sep 17 00:00:00 2001 From: Derk-Jan Karrenbeld Date: Sun, 27 Jul 2025 15:57:38 +0200 Subject: [PATCH 2/2] Force implementation to work with loadDie --- exercises/concept/captains-log/.docs/instructions.md | 6 ++++++ exercises/concept/captains-log/captains-log.spec.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/exercises/concept/captains-log/.docs/instructions.md b/exercises/concept/captains-log/.docs/instructions.md index 5b8b2a8d61..c774bc04aa 100644 --- a/exercises/concept/captains-log/.docs/instructions.md +++ b/exercises/concept/captains-log/.docs/instructions.md @@ -36,6 +36,12 @@ randomStardate(); // => 41458.15721310934 ``` + +~~~exercism/caution +It is expected that the smallest random number (0) results in the smallest random stardate (41000.0) and +the largest random number (just under 1) results in the largest random stardate (41999.999...). +~~~ + ## 3. Generate a random planet The Starship Enterprise encounters many planets in its travels. diff --git a/exercises/concept/captains-log/captains-log.spec.js b/exercises/concept/captains-log/captains-log.spec.js index dee5246993..52350d56c7 100644 --- a/exercises/concept/captains-log/captains-log.spec.js +++ b/exercises/concept/captains-log/captains-log.spec.js @@ -12,7 +12,7 @@ describe('randomShipRegistryNumber', () => { } }); - test('returns a random registry number', () => { + test('is a random registry number', () => { expect(randomShipRegistryNumber()).not.toEqual(randomShipRegistryNumber()); }); });