Exemplo n.º 1
0
 public function testFindBinary()
 {
     $array = CArray::fromElements("oua", "vnf", "fnf", "aod", "tvi", "nbt", "jny", "vor", "rfd", "cvm", "hyh", "kng", "ggo", "uea", "hkb", "qbk", "xla", "uod", "jzi", "chw", "ssy", "olr", "bzl", "oux", "ltk", "bah", "khu", "msr", "pqv", "npb", "mtb", "eku", "vcv", "vbv", "wuo", "lrw", "bkw", "ezz", "jtc", "dwk", "dsq", "kzu", "oey", "vbi", "seh", "klz", "asj", "gzg", "ccs", "qop");
     $arrayOrig = CArray::makeCopy($array);
     $len = CArray::length($arrayOrig);
     // Sort the array first.
     CArray::sort($array, CComparator::ORDER_ASC);
     // Using the default comparators.
     for ($i = 0; $i < $len; $i += 3) {
         $string = $arrayOrig[$i];
         $foundAtPos0;
         CArray::find($array, $string, CComparator::EQUALITY, $foundAtPos0);
         $foundAtPos1;
         $found = CArray::findBinary($array, $string, CComparator::ORDER_ASC, $foundAtPos1);
         $this->assertTrue($found);
         $this->assertTrue($foundAtPos1 == $foundAtPos0);
     }
     // Using custom comparators.
     $comparatorEquality = function ($string0, $string1) {
         return CString::toLowerCase($string0) === CString::toLowerCase($string1);
     };
     $comparatorOrderAsc = function ($string0, $string1) {
         return CString::compare(CString::toLowerCase($string0), CString::toLowerCase($string1));
     };
     for ($i = 0; $i < $len; $i += 5) {
         $string = CString::toUpperCase($arrayOrig[$i]);
         $foundAtPos0;
         CArray::find($array, $string, $comparatorEquality, $foundAtPos0);
         $foundAtPos1;
         $found = CArray::findBinary($array, $string, $comparatorOrderAsc, $foundAtPos1);
         $this->assertTrue($found);
         $this->assertTrue($foundAtPos1 == $foundAtPos0);
     }
     // Special cases.
     $array = CArray::fromElements("a", "b");
     $found = CArray::findBinary($array, "a");
     $this->assertTrue($found);
     $found = CArray::findBinary($array, "b");
     $this->assertTrue($found);
     $found = CArray::findBinary($array, "c");
     $this->assertFalse($found);
     $array = CArray::fromElements("a");
     $found = CArray::findBinary($array, "a");
     $this->assertTrue($found);
     $array = CArray::make();
     $found = CArray::findBinary($array, "a");
     $this->assertFalse($found);
 }