Skip to content

Commit a1ff20d

Browse files
test: write test cases for HashTable class
1 parent 1e67dd6 commit a1ff20d

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

src/hash-table/HashTable.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
export class HashTable {
2-
protected size: number;
3-
private data;
2+
public size: number;
3+
public data;
44

5-
constructor(size: number) {
5+
constructor(size?: number) {
66
this.size = size;
77
this.data = new Array(size);
88
}
@@ -37,8 +37,8 @@ export class HashTable {
3737
return undefined;
3838
}
3939

40-
public keys() {
41-
const keysArray = [];
40+
public keys(): string[] {
41+
const keysArray: string[] = [];
4242
for (let i = 0; i < this.data.length; i++) {
4343
if (this.data[i]) {
4444
keysArray.push(this.data[i][0][0]);
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import { HashTable } from '../HashTable';
2+
3+
describe('Hash Table Class Implementation', () => {
4+
test('create a hash table of a given size', () => {
5+
const hashTable = new HashTable(65);
6+
expect(hashTable.size).toBe(65);
7+
});
8+
9+
test('create new empty hash table', () => {
10+
const hashTable = new HashTable();
11+
expect(hashTable.size).toBe(undefined);
12+
});
13+
14+
test('set data to hash table', () => {
15+
const hashTable = new HashTable();
16+
hashTable.set('Users', 150);
17+
18+
expect(hashTable.get('Users')).toBe(150);
19+
});
20+
});

0 commit comments

Comments
 (0)