From fbc58ca1fc8b709fd7775f67a0da31d570545387 Mon Sep 17 00:00:00 2001 From: Thomas Heartman Date: Fri, 9 May 2025 17:47:52 +0200 Subject: [PATCH] fix difference calc and add tests (#9950) Fixes a whoopsie in the difference function and adds tests at the same time. --- .../useEditableConstraint/set-functions.test.ts | 15 +++++++++++++++ .../useEditableConstraint/set-functions.ts | 6 +++--- 2 files changed, 18 insertions(+), 3 deletions(-) create mode 100644 frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/useEditableConstraint/set-functions.test.ts diff --git a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/useEditableConstraint/set-functions.test.ts b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/useEditableConstraint/set-functions.test.ts new file mode 100644 index 0000000000..f58bf19fcf --- /dev/null +++ b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/useEditableConstraint/set-functions.test.ts @@ -0,0 +1,15 @@ +import { difference, union } from './set-functions'; + +test('union', () => { + const a = [1, 2]; + const b = new Set([2, 3]); + const c = union(a, b); + expect([...c]).toEqual([1, 2, 3]); +}); + +test('difference', () => { + const a = [1, 2]; + const b = new Set([2, 3]); + const c = difference(a, b); + expect([...c]).toEqual([1]); +}); diff --git a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/useEditableConstraint/set-functions.ts b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/useEditableConstraint/set-functions.ts index 6731854459..e9dd7232bf 100644 --- a/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/useEditableConstraint/set-functions.ts +++ b/frontend/src/component/feature/FeatureStrategy/FeatureStrategyConstraints/useEditableConstraint/set-functions.ts @@ -6,7 +6,7 @@ // todo: replace the use of this methods with set.union and set.difference when // it's available. -export const union = (a: Iterable, b: Set) => { +export const union = (a: Iterable, b: Set): Set => { const result = new Set(a); for (const element of b) { result.add(element); @@ -14,8 +14,8 @@ export const union = (a: Iterable, b: Set) => { return result; }; -export const difference = (a: Iterable, b: Set) => { - const result = new Set(a); +export const difference = (a: Iterable, b: Set): Set => { + const result = new Set(); for (const element of a) { if (!b.has(element)) { result.add(element);