✅ Add a test for the -Infinity edge case in exercise 1
This commit is contained in:
parent
b98e2a673e
commit
6a45b22df5
1 changed files with 11 additions and 3 deletions
|
@ -16,8 +16,9 @@ describe('exo1', () => {
|
||||||
expect(divide(25, 5)).toEqual(5);
|
expect(divide(25, 5)).toEqual(5);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should return Infinity if the denominator is zero', () => {
|
it('should return Infinity or -Infinity if the denominator is zero', () => {
|
||||||
expect(divide(25, 0)).toBe(Infinity);
|
expect(divide(25, 0)).toBe(Infinity);
|
||||||
|
expect(divide(-25, 0)).toBe(-Infinity);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -28,6 +29,7 @@ describe('exo1', () => {
|
||||||
|
|
||||||
it('should return Option.none if the denominator is zero', () => {
|
it('should return Option.none if the denominator is zero', () => {
|
||||||
expect(safeDivide(25, 0)).toStrictEqual(Option.none);
|
expect(safeDivide(25, 0)).toStrictEqual(Option.none);
|
||||||
|
expect(safeDivide(-25, 0)).toStrictEqual(Option.none);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -40,6 +42,9 @@ describe('exo1', () => {
|
||||||
expect(safeDivideWithError(25, 0)).toStrictEqual(
|
expect(safeDivideWithError(25, 0)).toStrictEqual(
|
||||||
Either.left(DivisionByZero),
|
Either.left(DivisionByZero),
|
||||||
);
|
);
|
||||||
|
expect(safeDivideWithError(-25, 0)).toStrictEqual(
|
||||||
|
Either.left(DivisionByZero),
|
||||||
|
);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -52,6 +57,7 @@ describe('exo1', () => {
|
||||||
|
|
||||||
it('should eventually return Infinity if the denominator is zero', async () => {
|
it('should eventually return Infinity if the denominator is zero', async () => {
|
||||||
await expect(asyncDivide(25, 0)).rejects.toThrow();
|
await expect(asyncDivide(25, 0)).rejects.toThrow();
|
||||||
|
await expect(asyncDivide(-25, 0)).rejects.toThrow();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -63,9 +69,11 @@ describe('exo1', () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should eventually return Either.left(DivisionByZero) if the denominator is zero', async () => {
|
it('should eventually return Either.left(DivisionByZero) if the denominator is zero', async () => {
|
||||||
const result = await asyncSafeDivideWithError(25, 0)();
|
const resultA = await asyncSafeDivideWithError(25, 0)();
|
||||||
|
const resultB = await asyncSafeDivideWithError(-25, 0)();
|
||||||
|
|
||||||
expect(result).toStrictEqual(Either.left(DivisionByZero));
|
expect(resultA).toStrictEqual(Either.left(DivisionByZero));
|
||||||
|
expect(resultB).toStrictEqual(Either.left(DivisionByZero));
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Reference in a new issue