Esempio n. 1
0
 public function testCompareTo()
 {
     // standard win/loss
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(5)));
     $hand1->add(new Card(new Rank(7)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(9)));
     $hand2->add(new Card(new Rank(9)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::LOSE);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::WIN);
     // with soft ace
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(RANK::ACE)));
     $hand1->add(new Card(new Rank(8)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(9)));
     $hand2->add(new Card(new Rank(9)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::WIN);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::LOSE);
     // another with soft ace
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(4)));
     $hand1->add(new Card(new Rank(RANK::QUEEN)));
     $hand1->add(new Card(new Rank(RANK::ACE)));
     $hand1->add(new Card(new Rank(3)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(8)));
     $hand2->add(new Card(new Rank(3)));
     $hand2->add(new Card(new Rank(5)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::WIN);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::LOSE);
     // push with soft ace
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(4)));
     $hand1->add(new Card(new Rank(RANK::ACE)));
     $hand1->add(new Card(new Rank(3)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(8)));
     $hand2->add(new Card(new Rank(3)));
     $hand2->add(new Card(new Rank(7)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::PUSH);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::PUSH);
     // bust
     $hand1 = new Hand();
     $hand1->add(new Card(new Rank(RANK::KING)));
     $hand1->add(new Card(new Rank(8)));
     $hand1->add(new Card(new Rank(RANK::KING)));
     $hand2 = new Hand();
     $hand2->add(new Card(new Rank(9)));
     $hand2->add(new Card(new Rank(9)));
     $this->assertTrue($hand1->compareTo($hand2) == Hand::LOSE);
     $this->assertTrue($hand2->compareTo($hand1) == Hand::WIN);
 }