* [misc] Enhance unit tests for pivotModel::pureCrystalData() method

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
liugang
2025-09-25 09:16:52 +08:00
co-authored by Claude
parent ee906592b0
commit 198cf335ee
+45 -6
View File
@@ -59,7 +59,27 @@ r($pivotTest->pureCrystalDataTest(array(
)
))) && p('0:slice_group,col1_slice1:value,col1_slice1:type,col1_slice2:value,col1_slice2:type') && e('sliced,10,A,20,B');
// 测试步骤5:复杂多记录数据处理 - 测试多记录和异常数据处理
// 测试步骤5:多记录数据处理 - 测试多条记录的正确处理
r($pivotTest->pureCrystalDataTest(array(
0 => array(
'columns' => array(
'col1' => array(
'cellData' => array('value' => 200, 'flag' => true)
)
),
'groups' => array('record' => 'first')
),
1 => array(
'columns' => array(
'col2' => array(
'cellData' => array('value' => 300, 'status' => 'active')
)
),
'groups' => array('record' => 'second')
)
))) && p('1:record,col2:value,col2:status') && e('second,300,active');
// 测试步骤6:null值和空值处理 - 测试null值和空cellData的处理
r($pivotTest->pureCrystalDataTest(array(
0 => array(
'columns' => array(
@@ -71,13 +91,32 @@ r($pivotTest->pureCrystalDataTest(array(
)
),
'groups' => array('null_group' => null, 'empty_group' => 'test')
),
1 => array(
)
))) && p('0:null_group,empty_group,col1:value') && e('~~,test,~~');
// 测试步骤7:复杂嵌套切片数据 - 测试多层嵌套的切片数据处理
r($pivotTest->pureCrystalDataTest(array(
0 => array(
'columns' => array(
'col1' => array(
'cellData' => array('value' => 200, 'flag' => true)
'cellData' => array(
'slice1' => array('value' => 50, 'nested' => array('deep' => 'data')),
'slice2' => array('count' => 25, 'items' => array(1, 2, 3))
)
)
),
'groups' => array('record' => 'second')
'groups' => array('complex' => 'nested')
)
))) && p('1:record,col1:value,col1:flag') && e('second,200,1');
))) && p('0:complex') && e('nested');
// 测试步骤8:边界值数据类型测试 - 测试不同数据类型的值处理
r($pivotTest->pureCrystalDataTest(array(
0 => array(
'columns' => array(
'col1' => array(
'cellData' => array('value' => 0, 'bool_true' => true, 'bool_false' => false, 'string_empty' => '')
)
),
'groups' => array('boundary' => 'types')
)
))) && p('0:boundary,col1:value,col1:bool_true,col1:bool_false,col1:string_empty') && e('types,0,1,0,~~');