-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnumarray_test.ts
More file actions
73 lines (60 loc) · 2.32 KB
/
numarray_test.ts
File metadata and controls
73 lines (60 loc) · 2.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import { assert, assertEquals } from "jsr:@std/assert";
import { NumArray } from "./numarray.ts";
// ============================================================================
// constructor tests
// ============================================================================
Deno.test("constructor with no input", () => {
const arr = new NumArray();
assertEquals(arr.elements, []);
});
Deno.test("constructor with variable input", () => {
const arr = new NumArray(1, 2, 3, 4, 5);
assertEquals(arr.elements, [1, 2, 3, 4, 5]);
});
Deno.test("constructor with array input", () => {
const arr = new NumArray([1, 2, 3, 4, 5]);
assertEquals(arr.elements, [1, 2, 3, 4, 5]);
});
Deno.test("constructor with NaN input", () => {
try {
new NumArray(1, 2, 3, 4, NaN);
assert(false, "Expected Error: Input contains non-numeric values: only numbers are allowed.");
} catch (e) {
assertEquals((e as Error).message, "Input contains non-numeric values: only numbers are allowed.");
}
});
// ============================================================================
// arange tests
// ============================================================================
Deno.test("arange with step = 0", () => {
try {
NumArray.arange(1, 5, 0);
assert(false, "Expected Error: The step value can not be 0.");
} catch (e) {
assertEquals((e as Error).message, "The step value can not be 0.");
}
});
Deno.test("arange with start = stop and step > 0", () => {
const arr = NumArray.arange(5, 5, 1);
assertEquals(arr.elements, []);
});
Deno.test("arange with start < stop and step > 0", () => {
const arr = NumArray.arange(1, 5, 1);
assertEquals(arr.elements, [1, 2, 3, 4, 5]);
});
Deno.test("arange with start > stop and step < 0", () => {
const arr = NumArray.arange(5, 1, -1);
assertEquals(arr.elements, [5, 4, 3, 2, 1]);
});
Deno.test("arange with start > stop and step < 0", () => {
const arr = NumArray.arange(5, 1, -1);
assertEquals(arr.elements, [5, 4, 3, 2, 1]);
});
Deno.test("arange with start > stop and step > 0", () => {
const arr = NumArray.arange(5, 1, 1);
assertEquals(arr.elements, []);
});
Deno.test("arange with start < stop and step < 0", () => {
const arr = NumArray.arange(1, 5, -1);
assertEquals(arr.elements, []);
});