DIR : /home/kozerus/public_html/dgs/scripts/tests/TournamentPointsTest.php

/home/kozerus/public_html/dgs/scripts/tests

<?php
/*
Dragon Go Server
Copyright (C) 2001-  Erik Ouchterlony, Rod Ival, Jens-Uwe Gaspar

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

/* Author: Jens-Uwe Gaspar */

require_once 'DgsUnitTest.php';
require_once 'tournaments/include/tournament_points.php';


/**
 * Test class for helpers to handle tournament-points.
 * Generated by PHPUnit_Util_Skeleton on 2009-12-06 at 10:55:49.
 */
class TournamentPointsTest extends DgsUnitTest {

   /** Tests getPointsLimit(point_type). */
   public function test_getPointsLimit()
   {
      $tp = new TournamentPoints();
      $this->assertEquals(  100, $tp->getPointsLimit(TPOINTSTYPE_SIMPLE) );
      $this->assertEquals( 1000, $tp->getPointsLimit(TPOINTSTYPE_HAHN) );
   }

   /** Tests calculate_points(game_score). */
   public function test_calculate_points_SIMPLE() {
      $tp = new TournamentPoints();
      $tp->setDefaults( TPOINTSTYPE_SIMPLE );
      $this->assertEquals( TPOINTSTYPE_SIMPLE, $tp->PointsType );

      $this->assertEquals( 2, $tp->calculate_points( -SCORE_RESIGN ) );
      $this->assertEquals( 2, $tp->calculate_points( -SCORE_TIME ) );
      $this->assertEquals( 2, $tp->calculate_points( -SCORE_FORFEIT ) );
      $this->assertEquals( 2, $tp->calculate_points( -150 ) );
      $this->assertEquals( 2, $tp->calculate_points( -27 ) );
      $this->assertEquals( 2, $tp->calculate_points( -30.5 ) );
      $this->assertEquals( 2, $tp->calculate_points( -2.5 ) );
      $this->assertEquals( 2, $tp->calculate_points( -0.5 ) );

      $this->assertEquals( 1, $tp->calculate_points( 0 ) );

      $this->assertEquals( 0, $tp->calculate_points( +SCORE_RESIGN ) );
      $this->assertEquals( 0, $tp->calculate_points( +SCORE_TIME ) );
      $this->assertEquals( 0, $tp->calculate_points( +SCORE_FORFEIT ) );
      $this->assertEquals( 0, $tp->calculate_points( +150 ) );
      $this->assertEquals( 0, $tp->calculate_points( +27 ) );
      $this->assertEquals( 0, $tp->calculate_points( +30.5 ) );
      $this->assertEquals( 0, $tp->calculate_points( +2.5 ) );
      $this->assertEquals( 0, $tp->calculate_points( +0.5 ) );

      $this->assertEquals( 0, $tp->calculate_points( 0, TG_FLAG_GAME_DETACHED ) );
      $this->assertEquals( 1, $tp->calculate_points( 0, TG_FLAG_GAME_NO_RESULT ) );
   }


   public function test_calculate_points_HAHN_shared() {
      $tp = new TournamentPoints();
      $tp->setDefaults( TPOINTSTYPE_HAHN );
      $this->assertEquals( TPOINTSTYPE_HAHN, $tp->PointsType );
      $this->assertEquals( TPOINTS_FLAGS_SHARE_MAX_POINTS, ($tp->Flags & TPOINTS_FLAGS_SHARE_MAX_POINTS) );

      $this->assertEquals( 10, $tp->calculate_points( -SCORE_RESIGN ) );
      $this->assertEquals( 10, $tp->calculate_points( -SCORE_TIME ) );
      $this->assertEquals( 10, $tp->calculate_points( -SCORE_FORFEIT ) );
      $this->assertEquals( 10, $tp->calculate_points( -150 ) );
      $this->assertEquals(  9, $tp->calculate_points( -30.5 ) );
      $this->assertEquals(  8, $tp->calculate_points( -27 ) );
      $this->assertEquals(  6, $tp->calculate_points( -2.5 ) );
      $this->assertEquals(  6, $tp->calculate_points( -0.5 ) );

      $this->assertEquals(  5, $tp->calculate_points( 0 ) );

      $this->assertEquals(  0, $tp->calculate_points( +SCORE_RESIGN ) );
      $this->assertEquals(  0, $tp->calculate_points( +SCORE_TIME ) );
      $this->assertEquals(  0, $tp->calculate_points( +SCORE_FORFEIT ) );
      $this->assertEquals(  0, $tp->calculate_points( +150 ) );
      $this->assertEquals(  1, $tp->calculate_points( +30.5 ) );
      $this->assertEquals(  2, $tp->calculate_points( +27 ) );
      $this->assertEquals(  4, $tp->calculate_points( +2.5 ) );
      $this->assertEquals(  4, $tp->calculate_points( +0.5 ) );

      $this->assertEquals(  0, $tp->calculate_points( 0, TG_FLAG_GAME_DETACHED ) );
      $this->assertEquals(  0, $tp->calculate_points( 0, TG_FLAG_GAME_NO_RESULT ) );
      $tp->PointsNoResult = 10;
      $this->assertEquals( 10, $tp->calculate_points( 0, TG_FLAG_GAME_NO_RESULT ) );
   }

   public function test_calculate_points_HAHN_not_shared() {
      $tp = new TournamentPoints();
      $tp->setDefaults( TPOINTSTYPE_HAHN );
      $this->assertEquals( TPOINTSTYPE_HAHN, $tp->PointsType );
      $tp->Flags = 0;

      $this->assertEquals( 10, $tp->calculate_points( -SCORE_RESIGN ) );
      $this->assertEquals( 10, $tp->calculate_points( -SCORE_TIME ) );
      $this->assertEquals( 10, $tp->calculate_points( -SCORE_FORFEIT ) );
      $this->assertEquals( 10, $tp->calculate_points( -150 ) );
      $this->assertEquals(  4, $tp->calculate_points( -30.5 ) );
      $this->assertEquals(  3, $tp->calculate_points( -27 ) );
      $this->assertEquals(  1, $tp->calculate_points( -2.5 ) );
      $this->assertEquals(  1, $tp->calculate_points( -0.5 ) );

      $this->assertEquals(  0, $tp->calculate_points( 0 ) );

      $this->assertEquals(  0, $tp->calculate_points( +SCORE_RESIGN ) );
      $this->assertEquals(  0, $tp->calculate_points( +SCORE_TIME ) );
      $this->assertEquals(  0, $tp->calculate_points( +SCORE_FORFEIT ) );
      $this->assertEquals(  0, $tp->calculate_points( +27 ) );
      $this->assertEquals(  0, $tp->calculate_points( +150 ) );
      $this->assertEquals(  0, $tp->calculate_points( +30.5 ) );
      $this->assertEquals(  0, $tp->calculate_points( +2.5 ) );
      $this->assertEquals(  0, $tp->calculate_points( +0.5 ) );

      $this->assertEquals(  0, $tp->calculate_points( 0, TG_FLAG_GAME_DETACHED ) );
      $this->assertEquals(  0, $tp->calculate_points( 0, TG_FLAG_GAME_NO_RESULT ) );
   }

   public function test_calculate_points_HAHN_negative_points() {
      $tp = new TournamentPoints();
      $tp->setDefaults( TPOINTSTYPE_HAHN );
      $this->assertEquals( TPOINTSTYPE_HAHN, $tp->PointsType );
      $tp->Flags = TPOINTS_FLAGS_NEGATIVE_POINTS;

      $this->assertEquals( 10, $tp->calculate_points( -SCORE_RESIGN ) );
      $this->assertEquals( 10, $tp->calculate_points( -SCORE_TIME ) );
      $this->assertEquals( 10, $tp->calculate_points( -SCORE_FORFEIT ) );
      $this->assertEquals( 10, $tp->calculate_points( -150 ) );
      $this->assertEquals(  4, $tp->calculate_points( -30.5 ) );
      $this->assertEquals(  3, $tp->calculate_points( -27 ) );
      $this->assertEquals(  1, $tp->calculate_points( -2.5 ) );
      $this->assertEquals(  1, $tp->calculate_points( -0.5 ) );

      $this->assertEquals(  0, $tp->calculate_points( 0 ) );

      $this->assertEquals( -10, $tp->calculate_points( +SCORE_RESIGN ) );
      $this->assertEquals( -10, $tp->calculate_points( +SCORE_TIME ) );
      $this->assertEquals( -10, $tp->calculate_points( +SCORE_FORFEIT ) );
      $this->assertEquals( -10, $tp->calculate_points( +150 ) );
      $this->assertEquals(  -4, $tp->calculate_points( +30.5 ) );
      $this->assertEquals(  -3, $tp->calculate_points( +27 ) );
      $this->assertEquals(  -1, $tp->calculate_points( +2.5 ) );
      $this->assertEquals(  -1, $tp->calculate_points( +0.5 ) );

      $this->assertEquals(  0, $tp->calculate_points( 0, TG_FLAG_GAME_DETACHED ) );
      $this->assertEquals(  0, $tp->calculate_points( 0, TG_FLAG_GAME_NO_RESULT ) );
   }

}

?>
//


koh5_pano



Your browser does not support the HTML5 canvas element.


Drag mouse to navigate.

Navigation





17.Aug.2010, Martin Wengenmayer