51 lines
1.2 KiB
TypeScript
51 lines
1.2 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
import { circuitTree } from "./circuits";
|
|
|
|
describe("circuitTree", () => {
|
|
test("single root", () => {
|
|
const result = circuitTree({
|
|
main: { power: 0 },
|
|
});
|
|
expect(result).toEqual({ name: "main", power: 0 });
|
|
});
|
|
|
|
test("root with children", () => {
|
|
const result = circuitTree({
|
|
root: { power: 0 },
|
|
child1: { power: 0, parent: "root" },
|
|
child2: { power: 0, parent: "root" },
|
|
});
|
|
expect(result).toEqual({
|
|
name: "root",
|
|
power: 0,
|
|
children: [
|
|
{ name: "child1", power: 0, parent: "root" },
|
|
{ name: "child2", power: 0, parent: "root" },
|
|
],
|
|
});
|
|
});
|
|
|
|
test("nested two levels", () => {
|
|
const result = circuitTree({
|
|
root: { power: 0 },
|
|
mid: { power: 0, parent: "root" },
|
|
leaf: { power: 0, parent: "mid" },
|
|
});
|
|
expect(result).toEqual({
|
|
name: "root",
|
|
power: 0,
|
|
children: [
|
|
{
|
|
name: "mid",
|
|
power: 0,
|
|
parent: "root",
|
|
children: [{ name: "leaf", power: 0, parent: "mid" }],
|
|
},
|
|
],
|
|
});
|
|
});
|
|
|
|
test("empty input", () => {
|
|
expect(circuitTree({})).toBeNull();
|
|
});
|
|
});
|