TestOverloadAssign.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. use PHPUnit\Framework\TestCase;
  3. define('APP_ID', 'test');
  4. define('BASE_ROOT_PATH', str_replace('/test', '', dirname(__FILE__)));
  5. require_once(BASE_ROOT_PATH . '/global.php');
  6. require_once(BASE_CORE_PATH . '/lrlz.php');
  7. require_once(BASE_ROOT_PATH . '/fooder.php');
  8. require_once(BASE_CORE_PATH . '/framework/function/http.php');
  9. require_once(BASE_HELPER_PATH . '/refill/RefillFactory.php');
  10. require_once(BASE_HELPER_PATH . '/mtopcard/mtopcard.php');
  11. class ctl_item
  12. {
  13. private $mName;
  14. private $mMaxSpeed;
  15. public function __construct($name,$max_speed)
  16. {
  17. $this->mName = $name;
  18. $this->mMaxSpeed = $max_speed;
  19. }
  20. public function name() {
  21. return $this->mName;
  22. }
  23. public function max_speed() {
  24. return $this->mMaxSpeed;
  25. }
  26. }
  27. class TestOverloadAssign extends TestCase
  28. {
  29. public static function setUpBeforeClass() : void
  30. {
  31. Base::run_util();
  32. }
  33. public function testRandomOverload()
  34. {
  35. $assigner = new refill\overload_assigner();
  36. $ctls = [];
  37. $items = ['a' => 1,'b' => 30,'c' => 50,'d' => 100,'e' => 500];
  38. foreach ($items as $name => $max_speed) {
  39. $ctls[] = new ctl_item($name,$max_speed);
  40. }
  41. $assigner->add($ctls);
  42. for ($i = 0; $i < 10000; $i++) {
  43. $result = $assigner->assign();
  44. }
  45. }
  46. }