Skip to content

Commit

Permalink
refactor: cleanup Infinity usage
Browse files Browse the repository at this point in the history
Signed-off-by: Jérôme Benoit <jerome.benoit@sap.com>
  • Loading branch information
Jérôme Benoit committed May 21, 2024
1 parent 840ca85 commit cffc32b
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 10 deletions.
9 changes: 6 additions & 3 deletions src/charging-station/ChargingStation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -411,14 +411,17 @@ export class ChargingStation extends EventEmitter {
const connectorChargingProfilesPowerLimit =
getChargingStationConnectorChargingProfilesPowerLimit(this, connectorId)
return min(
isNaN(connectorMaximumPower) ? Infinity : connectorMaximumPower,
isNaN(connectorMaximumPower) ? Number.POSITIVE_INFINITY : connectorMaximumPower,
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
isNaN(connectorAmperageLimitationPowerLimit!)
? Infinity
? Number.POSITIVE_INFINITY
: // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
connectorAmperageLimitationPowerLimit!,
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
isNaN(connectorChargingProfilesPowerLimit!) ? Infinity : connectorChargingProfilesPowerLimit!
isNaN(connectorChargingProfilesPowerLimit!)
? Number.POSITIVE_INFINITY
: // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
connectorChargingProfilesPowerLimit!
)
}

Expand Down
4 changes: 2 additions & 2 deletions src/performance/PerformanceStatistics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -267,12 +267,12 @@ export class PerformanceStatistics {
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
this.statistics.statisticsData.get(entry.name)!.minTimeMeasurement = min(
entry.duration,
this.statistics.statisticsData.get(entry.name)?.minTimeMeasurement ?? Infinity
this.statistics.statisticsData.get(entry.name)?.minTimeMeasurement ?? Number.POSITIVE_INFINITY
)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
this.statistics.statisticsData.get(entry.name)!.maxTimeMeasurement = max(
entry.duration,
this.statistics.statisticsData.get(entry.name)?.maxTimeMeasurement ?? -Infinity
this.statistics.statisticsData.get(entry.name)?.maxTimeMeasurement ?? Number.NEGATIVE_INFINITY
)
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
this.statistics.statisticsData.get(entry.name)!.totalTimeMeasurement =
Expand Down
4 changes: 2 additions & 2 deletions src/utils/StatisticUtils.ts
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import { mean } from 'rambda'

export const min = (...args: number[]): number =>
args.reduce((minimum, num) => (minimum < num ? minimum : num), Infinity)
args.reduce((minimum, num) => (minimum < num ? minimum : num), Number.POSITIVE_INFINITY)

export const max = (...args: number[]): number =>
args.reduce((maximum, num) => (maximum > num ? maximum : num), -Infinity)
args.reduce((maximum, num) => (maximum > num ? maximum : num), Number.NEGATIVE_INFINITY)

// TODO: use order statistics tree https://en.wikipedia.org/wiki/Order_statistic_tree
export const nthPercentile = (dataSet: number[], percentile: number): number => {
Expand Down
2 changes: 1 addition & 1 deletion src/utils/Utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ export const getRandomFloat = (max = Number.MAX_VALUE, min = 0): number => {
if (max < min) {
throw new RangeError('Invalid interval')
}
if (max - min === Infinity) {
if (max - min === Number.POSITIVE_INFINITY) {
throw new RangeError('Invalid interval')
}
return (randomBytes(4).readUInt32LE() / 0xffffffff) * (max - min) + min
Expand Down
4 changes: 2 additions & 2 deletions tests/utils/StatisticUtils.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@ import { max, min, nthPercentile, stdDeviation } from '../../src/utils/Statistic

await describe('StatisticUtils test suite', async () => {
await it('Verify min()', () => {
expect(min()).toBe(Infinity)
expect(min()).toBe(Number.POSITIVE_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()).toBe(Number.NEGATIVE_INFINITY)
expect(max(0, 1)).toBe(1)
expect(max(1, 0)).toBe(1)
expect(max(0, -1)).toBe(0)
Expand Down

0 comments on commit cffc32b

Please sign in to comment.