Skip to content

Commit 6bff79d

Browse files
author
K Hudson
committed
Add more structure tests.
1 parent 377b73d commit 6bff79d

File tree

5 files changed

+106
-1
lines changed

5 files changed

+106
-1
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "data-structures-ts",
3-
"version": "1.0.0",
3+
"version": "1.0.1",
44
"description": "",
55
"main": "index.js",
66
"type": "module",

src/LinkedList.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default class LinkedList {}

src/Queue.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default class Queue {}

tests/LinkedList.test.ts

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import LinkedList from "../src/LinkedList";
2+
import Node from "../src/Node";
3+
4+
5+
test("Smoke test ...", () => {
6+
expect(true).toEqual(true);
7+
});
8+
9+
describe("LinkedList", () => {
10+
let linkedList: LinkedList;
11+
12+
beforeEach(() => {
13+
linkedList = new LinkedList();
14+
})
15+
16+
test("should be empty on instantiation", () => {
17+
expect(linkedList.isEmpty()).toBeTruthy()
18+
});
19+
20+
test("should return head node", () => {
21+
let node = new Node();
22+
linkedList.addNode(node)
23+
expect(linkedList.head()).toBeTruthy()
24+
});
25+
26+
test("should return total count of nodes", () => {
27+
let node = new Node();
28+
linkedList.addNode(node)
29+
expect(linkedList.count()).toEqual(1)
30+
});
31+
32+
test("should find a node and return it", () => {
33+
let node = new Node();
34+
let node2 = new Node();
35+
linkedList.addNode(node)
36+
linkedList.addNode(node2)
37+
let result = linkedList.find(node);
38+
expect(result).toEqual(node);
39+
});
40+
41+
test("should remove a node", () => {
42+
let aNode = new Node();
43+
let bNode = new Node();
44+
let cNode = new Node();
45+
let dNode = new Node();
46+
linkedList.addNode(aNode)
47+
linkedList.addNode(bNode)
48+
linkedList.addNode(cNode)
49+
linkedList.addNode(dNode)
50+
linkedList.remove(cNode);
51+
expect(linkedList.count()).toEqual(3);
52+
expect(linkedList.bNode.next()).toEqual(dNode);
53+
});
54+
})

tests/Queue.test.ts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import Queue from "../src/Queue";
2+
import Node from "../src/Node";
3+
4+
test("Smoke test ...", () => {
5+
expect(true).toEqual(true);
6+
});
7+
8+
describe("Queue", () => {
9+
let queue: Queue;
10+
11+
beforeEach(() => {
12+
queue = new Queue();
13+
});
14+
15+
test("should be empty", () => {
16+
expect(queue.isEmpty()).toEqual(true);
17+
});
18+
19+
test("enqueue() should add a node", () => {
20+
let node = new Node();
21+
queue.enqueue(node);
22+
expect(queue.isEmpty()).toEqual(false);
23+
});
24+
25+
test("should return length", () => {
26+
let node = new Node();
27+
queue.enqueue(node);
28+
expect(queue.length()).toEqual(1);
29+
});
30+
31+
test("should add many nodes FIFO", () => {
32+
let firstNode = new Node();
33+
queue.enqueue(firstNode);
34+
queue.enqueue(new Node());
35+
queue.enqueue(new Node("End"));
36+
expect(firstNode).toEqual(queue.front());
37+
expect("End").toEqual(queue.rear().value());
38+
});
39+
40+
test("dequeue() should remove a node FIFO", () => {
41+
let firstIn = new Node();
42+
let secondIn = new Node();
43+
queue.enqueue(firstIn);
44+
queue.enqueue(secondIn);
45+
let firstOut = queue.dequeue();
46+
expect(firstIn).toEqual(firstOut);
47+
expect(secondIn).toEqual(queue.front());
48+
});
49+
})

0 commit comments

Comments
 (0)