require "./setup"
# user1 = Swars::User.create!
# user2 = Swars::User.create!
# battles = []
# # battles << Swars::Battle.create_with_members!([user1, user2], {kifu_body_for_test: "▲68銀"})
# battles << Swars::Battle.create_with_members!([user1, user2], {kifu_body_for_test: "▲68銀△42銀"})
# battles << Swars::Battle.create_with_members!([user1, user2], {kifu_body_for_test: "▲68銀△42銀"})
# tp battles.collect(&:info)
# scope = Swars::Membership.where(id: battles.flat_map(&:membership_ids))
# object = QuickScript::Swars::TacticStatScript.new({period_key: :infinite}, {batch_size: 1, scope: scope})
# object.cache_write
# tp object.aggregate[:day7]      # => [{勝ち: 2, 勝率: 0.5, 名前: "嬉野流", 引分: 0, 種類: "戦法", 負け: 2, 人気度: 1.0, 出現率: 1.0, スタイル: "王道", 使用人数: 2, 出現回数: 4}]
# tp object.as_general_json

def case1(kifu_body_list)
  user1 = Swars::User.create!
  user2 = Swars::User.create!
  battles = kifu_body_list.collect { |e| Swars::Battle.create_with_members!([user1, user2], { kifu_body_for_test: e }) }
  scope = Swars::Membership.where(id: battles.flat_map(&:membership_ids))
  object = QuickScript::Swars::TacticStatScript.new({ period_key: :infinite }, { batch_size: 1, scope: scope })
  object.cache_write
  tp object.aggregate[:day7]
end

case1(["▲68銀"])           # => [{勝ち: 1, 勝率: 1.0, 名前: "嬉野流", 引分: 0, 種類: "戦法", 負け: 0, 人気度: 1.0, 出現率: 0.5, スタイル: "王道", 使用人数: 1, 出現回数: 1}]
case1(["▲68銀△42銀"])     # => [{勝ち: 1, 勝率: 0.5, 名前: "嬉野流", 引分: 0, 種類: "戦法", 負け: 1, 人気度: 1.0, 出現率: 1.0, スタイル: "王道", 使用人数: 2, 出現回数: 2}]
case1(["▲68銀△42銀"] * 2) # => [{勝ち: 2, 勝率: 0.5, 名前: "嬉野流", 引分: 0, 種類: "戦法", 負け: 2, 人気度: 1.0, 出現率: 1.0, スタイル: "王道", 使用人数: 2, 出現回数: 4}]
case1(["▲68銀△62玉"])     # => [{勝ち: 1, 勝率: 1.0, 名前: "嬉野流", 引分: 0, 種類: "戦法", 負け: 0, 人気度: 0.5, 出現率: 0.5, スタイル: "王道", 使用人数: 1, 出現回数: 1}, {勝ち: 0, 勝率: 0.0, 名前: "新米長玉", 引分: 0, 種類: "戦法", 負け: 1, 人気度: 0.5, 出現率: 0.5, スタイル: "準変態", 使用人数: 1, 出現回数: 1}, {勝ち: 0, 勝率: 0.0, 名前: "右玉", 引分: 0, 種類: "戦法", 負け: 1, 人気度: 0.5, 出現率: 0.5, スタイル: "王道", 使用人数: 1, 出現回数: 1}]
# >> 2025-09-05 19:03:23 1/2  50.00 % T1 TacticStatScript 1週間
# >> 2025-09-05 19:03:23 2/2 100.00 % T0 TacticStatScript 1週間
# >> 2025-09-05 19:03:23 1/2  50.00 % T1 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:23 2/2 100.00 % T0 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:23 1/2  50.00 % T1 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:23 2/2 100.00 % T0 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:23 1/2  50.00 % T1 TacticStatScript それ以上
# >> 2025-09-05 19:03:23 2/2 100.00 % T0 TacticStatScript それ以上
# >> 2025-09-05T10:03:23.672Z pid=17094 tid=edq INFO: Sidekiq 7.3.9 connecting to Redis with options {size: 10, pool_name: "internal", url: "redis://localhost:6379/4"}
# >> |------+------+--------+------+------+------+--------+--------+----------+----------+----------|
# >> | 勝ち | 勝率 | 名前   | 引分 | 種類 | 負け | 人気度 | 出現率 | スタイル | 使用人数 | 出現回数 |
# >> |------+------+--------+------+------+------+--------+--------+----------+----------+----------|
# >> |    1 |  1.0 | 嬉野流 |    0 | 戦法 |    0 |    1.0 |    0.5 | 王道     |        1 |        1 |
# >> |------+------+--------+------+------+------+--------+--------+----------+----------+----------|
# >> 2025-09-05 19:03:24 1/2  50.00 % T1 TacticStatScript 1週間
# >> 2025-09-05 19:03:24 2/2 100.00 % T0 TacticStatScript 1週間
# >> 2025-09-05 19:03:24 1/2  50.00 % T1 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:24 2/2 100.00 % T0 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:24 1/2  50.00 % T1 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:24 2/2 100.00 % T0 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:24 1/2  50.00 % T1 TacticStatScript それ以上
# >> 2025-09-05 19:03:24 2/2 100.00 % T0 TacticStatScript それ以上
# >> |------+------+--------+------+------+------+--------+--------+----------+----------+----------|
# >> | 勝ち | 勝率 | 名前   | 引分 | 種類 | 負け | 人気度 | 出現率 | スタイル | 使用人数 | 出現回数 |
# >> |------+------+--------+------+------+------+--------+--------+----------+----------+----------|
# >> |    1 |  0.5 | 嬉野流 |    0 | 戦法 |    1 |    1.0 |    1.0 | 王道     |        2 |        2 |
# >> |------+------+--------+------+------+------+--------+--------+----------+----------+----------|
# >> 2025-09-05 19:03:24 1/4  25.00 % T1 TacticStatScript 1週間
# >> 2025-09-05 19:03:24 2/4  50.00 % T0 TacticStatScript 1週間
# >> 2025-09-05 19:03:24 3/4  75.00 % T0 TacticStatScript 1週間
# >> 2025-09-05 19:03:24 4/4 100.00 % T0 TacticStatScript 1週間
# >> 2025-09-05 19:03:24 1/4  25.00 % T1 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:24 2/4  50.00 % T0 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:24 3/4  75.00 % T0 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:24 4/4 100.00 % T0 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:24 1/4  25.00 % T1 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:24 2/4  50.00 % T0 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:24 3/4  75.00 % T0 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:24 4/4 100.00 % T0 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:24 1/4  25.00 % T1 TacticStatScript それ以上
# >> 2025-09-05 19:03:24 2/4  50.00 % T0 TacticStatScript それ以上
# >> 2025-09-05 19:03:24 3/4  75.00 % T0 TacticStatScript それ以上
# >> 2025-09-05 19:03:24 4/4 100.00 % T0 TacticStatScript それ以上
# >> |------+------+--------+------+------+------+--------+--------+----------+----------+----------|
# >> | 勝ち | 勝率 | 名前   | 引分 | 種類 | 負け | 人気度 | 出現率 | スタイル | 使用人数 | 出現回数 |
# >> |------+------+--------+------+------+------+--------+--------+----------+----------+----------|
# >> |    2 |  0.5 | 嬉野流 |    0 | 戦法 |    2 |    1.0 |    1.0 | 王道     |        2 |        4 |
# >> |------+------+--------+------+------+------+--------+--------+----------+----------+----------|
# >> 2025-09-05 19:03:25 1/2  50.00 % T1 TacticStatScript 1週間
# >> 2025-09-05 19:03:25 2/2 100.00 % T0 TacticStatScript 1週間
# >> 2025-09-05 19:03:25 1/2  50.00 % T1 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:25 2/2 100.00 % T0 TacticStatScript 1ヶ月
# >> 2025-09-05 19:03:25 1/2  50.00 % T1 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:25 2/2 100.00 % T0 TacticStatScript 2ヶ月
# >> 2025-09-05 19:03:25 1/2  50.00 % T1 TacticStatScript それ以上
# >> 2025-09-05 19:03:25 2/2 100.00 % T0 TacticStatScript それ以上
# >> |------+------+----------+------+------+------+--------+--------+----------+----------+----------|
# >> | 勝ち | 勝率 | 名前     | 引分 | 種類 | 負け | 人気度 | 出現率 | スタイル | 使用人数 | 出現回数 |
# >> |------+------+----------+------+------+------+--------+--------+----------+----------+----------|
# >> |    1 |  1.0 | 嬉野流   |    0 | 戦法 |    0 |    0.5 |    0.5 | 王道     |        1 |        1 |
# >> |    0 |  0.0 | 新米長玉 |    0 | 戦法 |    1 |    0.5 |    0.5 | 準変態   |        1 |        1 |
# >> |    0 |  0.0 | 右玉     |    0 | 戦法 |    1 |    0.5 |    0.5 | 王道     |        1 |        1 |
# >> |------+------+----------+------+------+------+--------+--------+----------+----------+----------|
