$this->assertEquals('privately-modified', $fooNonReference['foo']);
}
+ /**
+ * @return null
+ */
private function &returnByReference() {
static $foo;
if ($foo === NULL) {
$inputs[] = array(
'lang' => 'en',
'msgid' => 'greeting',
- 'familiar' => false,
+ 'familiar' => FALSE,
'value' => 'Hello'
);
$inputs[] = array(
$inputs[] = array(
'lang' => 'en',
'msgid' => 'greeting',
- 'familiar' => true,
+ 'familiar' => TRUE,
'value' => 'Hey'
);
+ $inputs[] = array(
+ 'msgid' => 'greeting',
+ 'familiar' => TRUE,
+ 'value' => 'Universal greeting'
+ );
$byLangMsgid = CRM_Utils_Array::index(array('lang', 'msgid'), $inputs);
$this->assertEquals($inputs[4], $byLangMsgid['en']['greeting']);
$this->assertEquals($inputs[1], $byLangMsgid['en']['parting']);
$this->assertEquals($inputs[2], $byLangMsgid['fr']['greeting']);
$this->assertEquals($inputs[3], $byLangMsgid['fr']['parting']);
+ $this->assertEquals($inputs[5], $byLangMsgid[NULL]['greeting']);
}
function testCollect() {
$this->assertEquals($expected, CRM_Utils_Array::collect('catWord', $arr));
}
+ function testProduct0() {
+ $actual = CRM_Utils_Array::product(
+ array(),
+ array('base data' => 1)
+ );
+ $this->assertEquals(array(
+ array('base data' => 1),
+ ), $actual);
+ }
+
+ function testProduct1() {
+ $actual = CRM_Utils_Array::product(
+ array('dim1' => array('a', 'b')),
+ array('base data' => 1)
+ );
+ $this->assertEquals(array(
+ array('base data' => 1, 'dim1' => 'a'),
+ array('base data' => 1, 'dim1' => 'b'),
+ ), $actual);
+ }
+
+ 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);
+ }
+
+ function testIsSubset() {
+ $this->assertTrue(CRM_Utils_Array::isSubset(array(), array()));
+ $this->assertTrue(CRM_Utils_Array::isSubset(array('a'), array('a')));
+ $this->assertTrue(CRM_Utils_Array::isSubset(array('a'), array('b','a','c')));
+ $this->assertTrue(CRM_Utils_Array::isSubset(array('b','d'), array('a','b','c','d')));
+ $this->assertFalse(CRM_Utils_Array::isSubset(array('a'), array()));
+ $this->assertFalse(CRM_Utils_Array::isSubset(array('a'), array('b')));
+ $this->assertFalse(CRM_Utils_Array::isSubset(array('a'), array('b','c','d')));
+ }
}