/** * Test diff(); * * @return void */ public function testDiff() { $a = [0 => ['name' => 'main'], 1 => ['name' => 'about']]; $b = [0 => ['name' => 'main'], 1 => ['name' => 'about'], 2 => ['name' => 'contact']]; $result = Hash::diff($a, []); $expected = $a; $this->assertEquals($expected, $result); $result = Hash::diff([], $b); $expected = $b; $this->assertEquals($expected, $result); $result = Hash::diff($a, $b); $expected = [2 => ['name' => 'contact']]; $this->assertEquals($expected, $result); $b = [0 => ['name' => 'me'], 1 => ['name' => 'about']]; $result = Hash::diff($a, $b); $expected = [0 => ['name' => 'main']]; $this->assertEquals($expected, $result); $a = []; $b = ['name' => 'bob', 'address' => 'home']; $result = Hash::diff($a, $b); $this->assertEquals($result, $b); $a = ['name' => 'bob', 'address' => 'home']; $b = []; $result = Hash::diff($a, $b); $this->assertEquals($result, $a); $a = ['key' => true, 'another' => false, 'name' => 'me']; $b = ['key' => 1, 'another' => 0]; $expected = ['name' => 'me']; $result = Hash::diff($a, $b); $this->assertEquals($expected, $result); $a = ['key' => 'value', 'another' => null, 'name' => 'me']; $b = ['key' => 'differentValue', 'another' => null]; $expected = ['key' => 'value', 'name' => 'me']; $result = Hash::diff($a, $b); $this->assertEquals($expected, $result); $a = ['key' => 'value', 'another' => null, 'name' => 'me']; $b = ['key' => 'differentValue', 'another' => 'value']; $expected = ['key' => 'value', 'another' => null, 'name' => 'me']; $result = Hash::diff($a, $b); $this->assertEquals($expected, $result); $a = ['key' => 'value', 'another' => null, 'name' => 'me']; $b = ['key' => 'differentValue', 'another' => 'value']; $expected = ['key' => 'differentValue', 'another' => 'value', 'name' => 'me']; $result = Hash::diff($b, $a); $this->assertEquals($expected, $result); $a = ['key' => 'value', 'another' => null, 'name' => 'me']; $b = [0 => 'differentValue', 1 => 'value']; $expected = $a + $b; $result = Hash::diff($a, $b); $this->assertEquals($expected, $result); }
/** * Test diff(); * * @return void */ public function testDiff() { $a = array(0 => array('name' => 'main'), 1 => array('name' => 'about')); $b = array(0 => array('name' => 'main'), 1 => array('name' => 'about'), 2 => array('name' => 'contact')); $result = Hash::diff($a, array()); $expected = $a; $this->assertEquals($expected, $result); $result = Hash::diff(array(), $b); $expected = $b; $this->assertEquals($expected, $result); $result = Hash::diff($a, $b); $expected = array(2 => array('name' => 'contact')); $this->assertEquals($expected, $result); $b = array(0 => array('name' => 'me'), 1 => array('name' => 'about')); $result = Hash::diff($a, $b); $expected = array(0 => array('name' => 'main')); $this->assertEquals($expected, $result); $a = array(); $b = array('name' => 'bob', 'address' => 'home'); $result = Hash::diff($a, $b); $this->assertEquals($result, $b); $a = array('name' => 'bob', 'address' => 'home'); $b = array(); $result = Hash::diff($a, $b); $this->assertEquals($result, $a); $a = array('key' => true, 'another' => false, 'name' => 'me'); $b = array('key' => 1, 'another' => 0); $expected = array('name' => 'me'); $result = Hash::diff($a, $b); $this->assertEquals($expected, $result); $a = array('key' => 'value', 'another' => null, 'name' => 'me'); $b = array('key' => 'differentValue', 'another' => null); $expected = array('key' => 'value', 'name' => 'me'); $result = Hash::diff($a, $b); $this->assertEquals($expected, $result); $a = array('key' => 'value', 'another' => null, 'name' => 'me'); $b = array('key' => 'differentValue', 'another' => 'value'); $expected = array('key' => 'value', 'another' => null, 'name' => 'me'); $result = Hash::diff($a, $b); $this->assertEquals($expected, $result); $a = array('key' => 'value', 'another' => null, 'name' => 'me'); $b = array('key' => 'differentValue', 'another' => 'value'); $expected = array('key' => 'differentValue', 'another' => 'value', 'name' => 'me'); $result = Hash::diff($b, $a); $this->assertEquals($expected, $result); $a = array('key' => 'value', 'another' => null, 'name' => 'me'); $b = array(0 => 'differentValue', 1 => 'value'); $expected = $a + $b; $result = Hash::diff($a, $b); $this->assertEquals($expected, $result); }