#!/usr/bin/env php array( 'columns' => array( 'col1' => array( 'cellData' => array('value' => 100, 'label' => 'Test Data') ) ), 'groups' => array('group1' => 'value1', 'group2' => 'value2') ) ); r($pivotTest->pureCrystalDataTest($testData1)) && p('0:group1') && e('value1'); // 测试步骤2:空数组输入边界值测试 $testData2 = array(); r($pivotTest->pureCrystalDataTest($testData2)) && p() && e('0'); // 测试步骤3:带rowTotal的数据处理 $testData3 = array( 0 => array( 'columns' => array( 'col1' => array( 'cellData' => array('value' => 150, 'count' => 5), 'rowTotal' => 300 ) ), 'groups' => array('category' => 'totals') ) ); r($pivotTest->pureCrystalDataTest($testData3)) && p('0:category') && e('totals'); // 测试步骤4:切片数据处理 - cellData不包含value字段 $testData4 = array( 0 => array( 'columns' => array( 'col1' => array( 'cellData' => array( 'slice1' => array('value' => 10, 'type' => 'A'), 'slice2' => array('value' => 20, 'type' => 'B') ) ) ), 'groups' => array('slice_group' => 'sliced') ) ); r($pivotTest->pureCrystalDataTest($testData4)) && p('0:slice_group') && e('sliced'); // 测试步骤5:多条记录数据处理 $testData5 = 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') ) ); r($pivotTest->pureCrystalDataTest($testData5)) && p('1:record') && e('second'); // 测试步骤6:复杂多列数据处理 $testData6 = array( 0 => array( 'columns' => array( 'col1' => array( 'cellData' => array('value' => 100, 'label' => 'Column 1') ), 'col2' => array( 'cellData' => array('value' => 200, 'label' => 'Column 2'), 'rowTotal' => 500 ), 'col3' => array( 'cellData' => array( 'part1' => array('count' => 15, 'rate' => 0.75), 'part2' => array('count' => 5, 'rate' => 0.25) ) ) ), 'groups' => array('multi_col' => 'test', 'type' => 'complex') ) ); r($pivotTest->pureCrystalDataTest($testData6)) && p('0:multi_col') && e('test'); // 测试步骤7:边界值测试 - 空cellData处理 $testData7 = array( 0 => array( 'columns' => array( 'col1' => array( 'cellData' => array() ), 'col2' => array( 'cellData' => array('value' => 0) ) ), 'groups' => array('empty_test' => 'empty', 'zero_value' => 'zero') ) ); r($pivotTest->pureCrystalDataTest($testData7)) && p('0:empty_test') && e('empty');