public function testToPArray() { $map = m(["one" => "a", "two" => "b", "three" => "c"]); $map = $map->toPArray(); $this->assertTrue(CMap::equals($map, ["one" => "a", "two" => "b", "three" => "c"])); }
/** * Determines if a map is equal to another map. * * For any two maps to be equal, they need to have the same key-value pairs. * * You can use your own comparator for the comparison of the values in the maps, but the default comparator has got * you covered when comparing scalar values, such as `string`, `int`, `float`, and `bool`. And the default * comparator is smart enough to know how to compare objects of those classes that conform to the IEquality or * IEqualityAndOrder interface (static or not), including CUStringObject, CArrayObject, CMapObject, CTime etc. See * the [CComparator](CComparator.html) class for more on this. * * @param map $toMap The second map for comparison. * @param callable $comparator **OPTIONAL. Default is** `CComparator::EQUALITY`. The function or method to be * used for the comparison of any two values. If this parameter is provided, the comparator should take two * parameters, with the first parameter being a value from *this* map and the second parameter being a value from * the second map, and return `true` if the two values are equal and `false` otherwise. * * @return bool `true` if the two maps are equal, `false` otherwise. * * @link CComparator.html CComparator */ public function equals($toMap, $comparator = CComparator::EQUALITY) { return CMap::equals($this->m_map, $toMap, $comparator); }
public function testInsertValue() { $map = ["one" => "a", "two" => "b", "three" => "c"]; CMap::insertValue($map, "d"); $this->assertTrue(CMap::equals($map, ["one" => "a", "two" => "b", "three" => "c", 0 => "d"])); }