39 lines
898 B
JavaScript
39 lines
898 B
JavaScript
import Graph from '../src/graph.js';
|
|
|
|
describe('Graph', () => {
|
|
test('should add nodes and edges correctly', () => {
|
|
const g = new Graph();
|
|
g.addNode('x');
|
|
g.addNode('y');
|
|
g.addEdge('x', 'y');
|
|
|
|
expect(g.hasEdge('x', 'y')).toBe(true);
|
|
expect(g.hasEdge('y', 'x')).toBe(false);
|
|
});
|
|
|
|
test('reflexive should add self loops', () => {
|
|
const g = new Graph();
|
|
g.addNode('x');
|
|
g.addNode('y');
|
|
g.addEdge('x', 'y');
|
|
|
|
g.reflexive();
|
|
|
|
expect(g.hasEdge('x', 'x')).toBe(true);
|
|
expect(g.hasEdge('y', 'y')).toBe(true);
|
|
});
|
|
|
|
test('getAdjacencyList returns correct structure', () => {
|
|
const g = new Graph();
|
|
g.addNode('x');
|
|
g.addNode('y');
|
|
g.addEdge('x', 'y');
|
|
|
|
g.reflexive();
|
|
|
|
const adj = g.getAdjacencyList();
|
|
expect(adj['x']).toContain('y');
|
|
expect(adj['x']).toContain('x');
|
|
expect(adj['y']).toContain('y');
|
|
});
|
|
}); |