public static function assertEquals($expected, $actual, $message = '', $delta = 0, $maxDepth = 10, $canonicalize = FALSE, $ignoreCase = FALSE)
 {
     /** @var $actual Dictionary */
     if (is_array($expected) && $actual instanceof Dictionary) {
         $actual = $actual->values();
     }
     if ($actual instanceof KeyValuePair) {
         $actual = $actual->getValue();
     }
     if (is_array($expected) && isset($actual[0]) && $actual[0] instanceof Grouping) {
         foreach ($actual as $group) {
             $values = $group->toArray();
             $group->clear();
             $group->addRange(array_map(function (KeyValuePair $item) {
                 return $item->getValue();
             }, $values));
         }
     }
     if (is_array($expected) && isset($actual[0]) && $actual[0] instanceof KeyValuePair) {
         $actual = new Collection($actual);
         $actual = $actual->select('value')->toArray();
     }
     if ($expected instanceof Grouping) {
         $values = $actual->toArray();
         $actual->clear();
         $actual->addRange(array_map(function (KeyValuePair $item) {
             return $item->getValue();
         }, $values));
     }
     parent::assertEquals($expected, $actual, $message, $delta, $maxDepth, $canonicalize, $ignoreCase);
 }
 public function testCount()
 {
     $string = new Stringer('café');
     $this->assertEquals(4, $string->count());
     parent::testCount();
 }