我有一堆回归测试数据.每个测试只是一个消息列表(关联数组),将消息字段名称映射到值.这些数据中有很多重复.
例如
test1 = [ { sender => 'client', msg => '123', arg => '900', foo => 'bar', ... }, { sender => 'server', msg => '456', arg => '800', foo => 'bar', ... }, { sender => 'client', msg => '789', arg => '900', foo => 'bar', ... }, ]
我想表示字段数据(作为最小深度决策树?),以便可以使用最少数量的参数以编程方式重新生成每个消息.例如,在上面
foo总是'bar',所以我不需要提及它
发件人和客户是相关的,所以我只需要提及其中一个
和msg每次都不同
所以我希望能够使用一个程序重新生成这些消息
write_msg( 'client', '123' ) write_msg( 'server', '456' ) write_msg( 'client', '789' )
其中write_msg函数将由嵌套的if语句或使用参数的子函数调用组成.
基于我的原始数据,我如何确定"最重要"的参数集,即能够使用最少数量的参数重新创建数据集的参数?