From 04fdb951564e7d0317126bbb73251e1dc68999db Mon Sep 17 00:00:00 2001 From: Luc Patiny Date: Thu, 3 Sep 2026 10:08:40 +0200 Subject: [PATCH] fix: xIsMonotonic with 2 values could be wrong --- src/x/__tests__/xIsMonotonic.test.ts | 11 +++++++++++ src/x/xIsMonotonic.ts | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/x/__tests__/xIsMonotonic.test.ts b/src/x/__tests__/xIsMonotonic.test.ts index f0e6ed913..a1071fe8b 100644 --- a/src/x/__tests__/xIsMonotonic.test.ts +++ b/src/x/__tests__/xIsMonotonic.test.ts @@ -55,3 +55,14 @@ test('xIsMonotonic constant series', () => { expect(xIsMonotonic(array)).toBe(1); }); + +test('xIsMonotonic reads the direction of a pair', () => { + expect(xIsMonotonic([3, 5])).toBe(1); + expect(xIsMonotonic([5, 3])).toBe(-1); + expect(xIsMonotonic([5, 5])).toBe(1); +}); + +test('xIsMonotonic on fewer than two values', () => { + expect(xIsMonotonic([])).toBe(1); + expect(xIsMonotonic([5])).toBe(1); +}); diff --git a/src/x/xIsMonotonic.ts b/src/x/xIsMonotonic.ts index 6e4512f1e..f846a01f7 100644 --- a/src/x/xIsMonotonic.ts +++ b/src/x/xIsMonotonic.ts @@ -6,7 +6,7 @@ import type { NumberArray } from 'cheminfo-types'; * @returns 1 if monotonic increasing, -1 if monotonic decreasing, 0 if not monotonic. */ export function xIsMonotonic(array: NumberArray): -1 | 0 | 1 { - if (array.length <= 2) { + if (array.length < 2) { return 1; } if (array[0] === array[1]) {