From 53958c67c3c47717f664ff2a57eccda04d0cae6f Mon Sep 17 00:00:00 2001 From: tianfenghan Date: Tue, 31 Mar 2026 18:12:04 +0800 Subject: [PATCH] =?UTF-8?q?test(tree):=20=E6=B7=BB=E5=8A=A0=E6=A0=91?= =?UTF-8?q?=E5=BD=A2=E7=BB=93=E6=9E=84=E8=BD=AC=E6=8D=A2=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E7=9A=84AOT=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建TreeHelper类实现数组到树形结构的转换功能 - 实现基于ID和父ID的层级关系构建算法 - 添加测试数据验证多层级嵌套结构的正确性 - 包含根节点、子节点及深层级节点的断言测试 - 验证树形结构转换的完整性和准确性 - 为AOT编译环境跳过不支持的功能测试 --- tests/aot/ref/001.phpt | 99 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 tests/aot/ref/001.phpt diff --git a/tests/aot/ref/001.phpt b/tests/aot/ref/001.phpt new file mode 100644 index 00000000..dc53eaa0 --- /dev/null +++ b/tests/aot/ref/001.phpt @@ -0,0 +1,99 @@ +--TEST-- +ref 001 +--SKIPIF-- + +--FILE-- + 1, 'pid' => 0, 'name' => '中国'], + ['id' => 2, 'pid' => 1, 'name' => '广东省'], + ['id' => 3, 'pid' => 1, 'name' => '浙江省'], + ['id' => 4, 'pid' => 2, 'name' => '广州市'], + ['id' => 5, 'pid' => 2, 'name' => '深圳市'], + ['id' => 6, 'pid' => 3, 'name' => '杭州市'], + ['id' => 7, 'pid' => 0, 'name' => '美国'], + ['id' => 8, 'pid' => 7, 'name' => '加州'], + ['id' => 9, 'pid' => 8, 'name' => '旧金山'], + ]; + + // 调用 + $tree = TreeHelper::toTree($list); + + // 打印结果 + echo "生成的树结构:\n"; + print_r($tree); + + // 简单断言测试 + echo "\n开始断言测试...\n"; + + // 根节点应该有 2 个:中国、美国 + assert(count($tree) === 2); + + // 第一个根节点是中国 + assert($tree[0]['name'] === '中国'); + + // 中国下面应该有两个省 + assert(count($tree[0]['children']) === 2); + assert($tree[0]['children'][0]['name'] === '广东省'); + assert($tree[0]['children'][1]['name'] === '浙江省'); + + // 广东省下面应该有两个城市 + assert(count($tree[0]['children'][0]['children']) === 2); + assert($tree[0]['children'][0]['children'][0]['name'] === '广州市'); + assert($tree[0]['children'][0]['children'][1]['name'] === '深圳市'); + + // 浙江省下面应该有一个城市 + assert(count($tree[0]['children'][1]['children']) === 1); + assert($tree[0]['children'][1]['children'][0]['name'] === '杭州市'); + + // 第二个根节点是美国 + assert($tree[1]['name'] === '美国'); + + // 美国 -> 加州 -> 旧金山 + assert(count($tree[1]['children']) === 1); + assert($tree[1]['children'][0]['name'] === '加州'); + assert(count($tree[1]['children'][0]['children']) === 1); + assert($tree[1]['children'][0]['children'][0]['name'] === '旧金山'); + + echo "DONE\n"; +} +?> +--EXPECT--