X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=tests%2Futils%2FUtils.test.ts;h=de5b1fd79907db54f30038921abe17fc53a2f764;hb=2d4928a7237a906158f2e9652e08f0392eeabdcd;hp=630831a8d3e29d52d88cedf204d22789aa61a06b;hpb=38ae4ce2dba0f31e0f21c20490be0e7d376ce47c;p=e-mobility-charging-stations-simulator.git diff --git a/tests/utils/Utils.test.ts b/tests/utils/Utils.test.ts index 630831a8..de5b1fd7 100644 --- a/tests/utils/Utils.test.ts +++ b/tests/utils/Utils.test.ts @@ -1,10 +1,13 @@ +import { randomInt } from 'node:crypto' import { version } from 'node:process' import { describe, it } from 'node:test' import { hoursToMilliseconds, hoursToSeconds } from 'date-fns' import { expect } from 'expect' +import { CircularBuffer } from 'mnemonist' import { satisfies } from 'semver' +import type { TimestampedData } from '../../src/types/index.js' import { Constants } from '../../src/utils/Constants.js' import { clone, @@ -17,7 +20,6 @@ import { formatDurationSeconds, generateUUID, getRandomFloat, - getRandomInteger, hasOwnProp, isArraySorted, isAsyncFunction, @@ -25,8 +27,6 @@ import { isNotEmptyString, isObject, isValidDate, - max, - min, roundTo, secureRandom, sleep, @@ -97,7 +97,7 @@ await describe('Utils test suite', async () => { expect(convertToInt(undefined)).toBe(0) expect(convertToInt(null)).toBe(0) expect(convertToInt(0)).toBe(0) - const randomInteger = getRandomInteger() + const randomInteger = randomInt(Constants.MAX_RANDOM_INTEGER) expect(convertToInt(randomInteger)).toEqual(randomInteger) expect(convertToInt('-1')).toBe(-1) expect(convertToInt('1')).toBe(1) @@ -159,36 +159,6 @@ await describe('Utils test suite', async () => { expect(random).toBeLessThan(1) }) - await it('Verify getRandomInteger()', () => { - let randomInteger = getRandomInteger() - expect(Number.isSafeInteger(randomInteger)).toBe(true) - expect(randomInteger).toBeGreaterThanOrEqual(0) - expect(randomInteger).toBeLessThanOrEqual(Constants.MAX_RANDOM_INTEGER) - expect(randomInteger).not.toEqual(getRandomInteger()) - randomInteger = getRandomInteger(0, -Constants.MAX_RANDOM_INTEGER) - expect(randomInteger).toBeGreaterThanOrEqual(-Constants.MAX_RANDOM_INTEGER) - expect(randomInteger).toBeLessThanOrEqual(0) - expect(() => getRandomInteger(0, 1)).toThrow( - 'The value of "max" is out of range. It must be greater than the value of "min" (1). Received 1' - ) - expect(() => getRandomInteger(-1)).toThrow( - 'The value of "max" is out of range. It must be greater than the value of "min" (0). Received 0' - ) - expect(() => getRandomInteger(Constants.MAX_RANDOM_INTEGER + 1)).toThrow( - `The value of "max" is out of range. It must be <= ${ - Constants.MAX_RANDOM_INTEGER + 1 - }. Received 281_474_976_710_656` - ) - randomInteger = getRandomInteger(2, 1) - expect(randomInteger).toBeGreaterThanOrEqual(1) - expect(randomInteger).toBeLessThanOrEqual(2) - const maximum = 2.2 - const minimum = 1.1 - randomInteger = getRandomInteger(maximum, minimum) - expect(randomInteger).toBeLessThanOrEqual(Math.floor(maximum)) - expect(randomInteger).toBeGreaterThanOrEqual(Math.ceil(minimum)) - }) - await it('Verify roundTo()', () => { expect(roundTo(0, 2)).toBe(0) expect(roundTo(0.5, 0)).toBe(1) @@ -220,14 +190,19 @@ await describe('Utils test suite', async () => { }) await it('Verify extractTimeSeriesValues()', () => { - expect(extractTimeSeriesValues([])).toEqual([]) - expect(extractTimeSeriesValues([{ timestamp: Date.now(), value: 1.1 }])).toEqual([1.1]) expect( - extractTimeSeriesValues([ - { timestamp: Date.now(), value: 1.1 }, - { timestamp: Date.now(), value: 2.2 } - ]) - ).toEqual([1.1, 2.2]) + extractTimeSeriesValues( + new CircularBuffer(Array, Constants.DEFAULT_CIRCULAR_BUFFER_CAPACITY) + ) + ).toEqual([]) + const circularBuffer = new CircularBuffer( + Array, + Constants.DEFAULT_CIRCULAR_BUFFER_CAPACITY + ) + circularBuffer.push({ timestamp: Date.now(), value: 1.1 }) + circularBuffer.push({ timestamp: Date.now(), value: 2.2 }) + circularBuffer.push({ timestamp: Date.now(), value: 3.3 }) + expect(extractTimeSeriesValues(circularBuffer)).toEqual([1.1, 2.2, 3.3]) }) await it('Verify isObject()', () => { @@ -257,7 +232,7 @@ await describe('Utils test suite', async () => { expect(isAsyncFunction([])).toBe(false) expect(isAsyncFunction(new Date())).toBe(false) // eslint-disable-next-line prefer-regex-literals - expect(isAsyncFunction(new RegExp('[a-z]', 'i'))).toBe(false) + expect(isAsyncFunction(/[a-z]/i)).toBe(false) expect(isAsyncFunction(new Error())).toBe(false) expect(isAsyncFunction(new Map())).toBe(false) expect(isAsyncFunction(new Set())).toBe(false) @@ -420,20 +395,4 @@ await describe('Utils test suite', async () => { expect(isArraySorted([1, 2, 3, 5, 4], (a, b) => a - b)).toBe(false) expect(isArraySorted([2, 1, 3, 4, 5], (a, b) => a - b)).toBe(false) }) - - await it('Verify min()', () => { - expect(min()).toBe(Infinity) - expect(min(0, 1)).toBe(0) - expect(min(1, 0)).toBe(0) - expect(min(0, -1)).toBe(-1) - expect(min(-1, 0)).toBe(-1) - }) - - await it('Verify max()', () => { - expect(max()).toBe(-Infinity) - expect(max(0, 1)).toBe(1) - expect(max(1, 0)).toBe(1) - expect(max(0, -1)).toBe(0) - expect(max(-1, 0)).toBe(0) - }) })