function testProduct3()
 {
     $actual = CRM_Utils_Array::product(array('dim1' => array('a', 'b'), 'dim2' => array('alpha', 'beta'), 'dim3' => array('one', 'two')), array('base data' => 1));
     $this->assertEquals(array(array('base data' => 1, 'dim1' => 'a', 'dim2' => 'alpha', 'dim3' => 'one'), array('base data' => 1, 'dim1' => 'a', 'dim2' => 'alpha', 'dim3' => 'two'), array('base data' => 1, 'dim1' => 'a', 'dim2' => 'beta', 'dim3' => 'one'), array('base data' => 1, 'dim1' => 'a', 'dim2' => 'beta', 'dim3' => 'two'), array('base data' => 1, 'dim1' => 'b', 'dim2' => 'alpha', 'dim3' => 'one'), array('base data' => 1, 'dim1' => 'b', 'dim2' => 'alpha', 'dim3' => 'two'), array('base data' => 1, 'dim1' => 'b', 'dim2' => 'beta', 'dim3' => 'one'), array('base data' => 1, 'dim1' => 'b', 'dim2' => 'beta', 'dim3' => 'two')), $actual);
 }