test_hands.erl 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. %%----------------------------------------------------------------------
  2. %% @author Yura Zhloba <yzh44yzh@gmail.com>
  3. %% @copyright Paynet Internet ve Bilisim Hizmetleri A.S. All Rights Reserved.
  4. %% @doc
  5. %% This module allows to set up pieces for next game
  6. %% @end
  7. %%----------------------------------------------------------------------
  8. -module(test_hands).
  9. -include_lib("server/include/logging.hrl").
  10. -include_lib("server/include/requests.hrl").
  11. -include_lib("server/include/game_okey.hrl").
  12. -include_lib("eunit/include/eunit.hrl").
  13. -export([set_pieces/1, clear/0]).
  14. -export([pieces_set_1/0, pieces_set_2/0]).
  15. -spec set_pieces(list() | undefined) -> ok.
  16. set_pieces(P) ->
  17. ?PP("pieces ~p", [P]),
  18. A = kakaconfig:set([games, okey, debug_next_round_pieces], P),
  19. ?PP("set result: ~p", [A]),
  20. ok.
  21. -spec clear() -> ok.
  22. clear() ->
  23. set_pieces(undefined).
  24. set_1() ->
  25. A = to_pieces([
  26. {1,1}, {2,1}, {3,1}, {4,1},
  27. {1,2}, {2,2}, {3,2}, {4,2},
  28. {1,3}, {2,3}, {3,3}, {4,3},
  29. {1,4}, {2,4}, {3,4}, {4,4},
  30. {1,5}, {2,5}, {3,5}, {4,5},
  31. {1,6}, {2,6}, {3,6}, {4,6},
  32. {1,7}, {2,7}, {3,7}, {4,7},
  33. {1,8}, {2,8}, {3,8}, {4,8},
  34. {1,9}, {2,9}, {3,9}, {4,9},
  35. {1,10}, {2,10}, {3,10}, {4,10},
  36. {1,11}, {2,11}, {3,11}, {4,11},
  37. {1,12}, {2,12}, {3,12}, {4,12},
  38. {1,13}, {2,13}, {3,13}, {4,13},
  39. {1,1}, {2,1}, {3,1}, {4,1},
  40. {1,2}, {2,2}, {3,2}, {4,2},
  41. {1,3}, {2,3}, {3,3}, {4,3},
  42. {1,4}, {2,4}, {3,4}, {4,4},
  43. {1,5}, {2,5}, {3,5}, {4,5},
  44. {1,6}, {2,6}, {3,6}, {4,6},
  45. {1,7}, {2,7}, {3,7}, {4,7},
  46. {1,8}, {2,8}, {3,8}, {4,8},
  47. {1,9}, {2,9}, {3,9}, {4,9},
  48. {1,10}, {2,10}, {3,10}, {4,10},
  49. {1,11}, {2,11}, {3,11}, {4,11},
  50. {1,12}, {2,12}, {3,12}, {4,12},
  51. {1,13}, {2,13}, {3,13}, {4,13}
  52. ]),
  53. A ++ [?FALSE_OKEY, ?FALSE_OKEY].
  54. set_2() ->
  55. A = to_pieces([
  56. {2,1}, {4,1}, {3,1}, {1,1},
  57. {2,2}, {4,2}, {3,2}, {1,2},
  58. {2,3}, {4,3}, {3,3}, {1,3},
  59. {2,4}, {4,4}, {3,4}, {1,4},
  60. {2,5}, {4,5}, {3,5}, {1,5},
  61. {2,6}, {4,6}, {3,6}, {1,6},
  62. {2,7}, {4,7}, {3,7}, {1,7},
  63. {2,8}, {4,8}, {3,8}, {1,8},
  64. {2,9}, {4,9}, {3,9}, {1,9},
  65. {2,10}, {4,10}, {3,10}, {1,10},
  66. {2,11}, {4,11}, {3,11}, {1,11},
  67. {2,12}, {4,12}, {3,12}, {1,12},
  68. {2,13}, {4,13}, {3,13}, {1,13},
  69. {2,1}, {4,1}, {3,1}, {1,1},
  70. {2,2}, {4,2}, {3,2}, {1,2},
  71. {2,3}, {4,3}, {3,3}, {1,3},
  72. {2,4}, {4,4}, {3,4}, {1,4},
  73. {2,5}, {4,5}, {3,5}, {1,5},
  74. {2,6}, {4,6}, {3,6}, {1,6},
  75. {2,7}, {4,7}, {3,7}, {1,7},
  76. {2,8}, {4,8}, {3,8}, {1,8},
  77. {2,9}, {4,9}, {3,9}, {1,9},
  78. {2,10}, {4,10}, {3,10}, {1,10},
  79. {2,11}, {4,11}, {3,11}, {1,11},
  80. {2,12}, {4,12}, {3,12}, {1,12},
  81. {2,13}, {4,13}, {3,13}, {1,13}
  82. ]),
  83. A ++ [?FALSE_OKEY, ?FALSE_OKEY].
  84. pieces_set_1() ->
  85. set_pieces(set_1()).
  86. pieces_set_2() ->
  87. set_pieces(set_2()).
  88. to_pieces(Hands) ->
  89. [#'OkeyPiece'{color = Color, value = Value} || {Color, Value} <- Hands].
  90. are_hands_proper_test() ->
  91. {A, LL1, L2} = game_okey:generate_hand(),
  92. Ideal = lists:sort([A] ++ lists:flatten(LL1) ++ L2),
  93. Set1 = lists:sort(set_1()),
  94. Set2 = lists:sort(set_2()),
  95. ?DP("~nIdeal -- Set1 = ~p~nSet1 -- Ideal = ~p~n", [Ideal -- Set1, Set1 -- Ideal]),
  96. ?DP("~nIdeal -- Set2 = ~p~nSet2 -- Ideal = ~p~n", [Ideal -- Set2, Set2 -- Ideal]),
  97. true = Ideal == Set1,
  98. true = Ideal == Set2.