Files
url_tracker_tool/node_modules/non-layered-tidy-tree-layout/test/tree-layout.test.js
Andrei 58f8093689 Rebrand from 'Redirect Intelligence v2' to 'URL Tracker Tool V2' throughout UI
- Updated all component headers and documentation
- Changed navbar and footer branding
- Updated homepage hero badge
- Modified page title in index.html
- Simplified footer text to 'Built with ❤️'
- Consistent V2 capitalization across all references
2025-08-19 19:12:23 +00:00

63 lines
2.0 KiB
JavaScript

import { layout, Tree } from '../src/algorithm'
import TreeNode from './tree-node'
import Marshall from './marshall'
test('layout tree with one node', () => {
const tree = new Tree(10, 5, 0, [])
layout(tree)
expect(tree).toEqual(expect.objectContaining({ x: 0, y: 0 }))
})
test('layout tree with 2 nodes', () => {
const child = new TreeNode(20, 10)
const root = new TreeNode(10, 4)
root.addChild(child)
const tree = Marshall.convert(root)
layout(tree)
Marshall.convertBack(tree, root)
expect(root).toEqual(expect.objectContaining({ x: 5, y: 0 }))
expect(child).toEqual(expect.objectContaining({ x: 0, y: 4 }))
})
test('layout tree with 3 nodes', () => {
const c1 = new TreeNode(10, 30)
const c2 = new TreeNode(20, 10)
const root = new TreeNode(40, 10)
root.addChild(c1)
root.addChild(c2)
const tree = Marshall.convert(root)
layout(tree)
Marshall.convertBack(tree, root)
expect(root).toEqual(expect.objectContaining({ x: -5, y: 0 }))
expect(c1).toEqual(expect.objectContaining({ x: 0, y: 10 }))
expect(c2).toEqual(expect.objectContaining({ x: 10, y: 10 }))
})
test('reflection of the tree is the mirror image of the original tree', () => {
const n1 = new TreeNode(10, 10)
const n2 = new TreeNode(10, 10)
const n3 = new TreeNode(10, 10)
const n4 = new TreeNode(10, 10)
const n5 = new TreeNode(10, 10)
const n6 = new TreeNode(10, 20)
const n7 = new TreeNode(150, 10)
n1.addChild(n2)
n1.addChild(n3)
n1.addChild(n4)
n1.addChild(n5)
n1.addChild(n6)
n2.addChild(n7)
const tree = Marshall.convert(n1)
layout(tree)
Marshall.convertBack(tree, n1)
expect(n1).toEqual(expect.objectContaining({ x: 110, y: 0 }))
expect(n2).toEqual(expect.objectContaining({ x: 70, y: 10 }))
expect(n3).toEqual(expect.objectContaining({ x: 90, y: 10 }))
expect(n4).toEqual(expect.objectContaining({ x: 110, y: 10 }))
expect(n5).toEqual(expect.objectContaining({ x: 130, y: 10 }))
expect(n6).toEqual(expect.objectContaining({ x: 150, y: 10 }))
expect(n7).toEqual(expect.objectContaining({ x: 0, y: 20 }))
})