summaryrefslogtreecommitdiffstats
path: root/spec/fln_rules_spec.rb
diff options
context:
space:
mode:
authorJérémy Zurcher <jeremy@asynk.ch>2026-03-15 21:43:28 +0100
committerJérémy Zurcher <jeremy@asynk.ch>2026-03-15 21:43:28 +0100
commit7c914bbe1aaf7f7dbde6e612a01bb991876c217f (patch)
tree9d5b4c6e3e5e19221ebd120d17009dc73196c1c0 /spec/fln_rules_spec.rb
parent620f7c560316cb6b6572cd762447f64c5b06ba09 (diff)
downloadcolonial-twilight-7c914bbe1aaf7f7dbde6e612a01bb991876c217f.zip
colonial-twilight-7c914bbe1aaf7f7dbde6e612a01bb991876c217f.tar.gz
remove fln_rulesHEADmaster
Diffstat (limited to 'spec/fln_rules_spec.rb')
-rw-r--r--spec/fln_rules_spec.rb199
1 files changed, 0 insertions, 199 deletions
diff --git a/spec/fln_rules_spec.rb b/spec/fln_rules_spec.rb
deleted file mode 100644
index dc19be1..0000000
--- a/spec/fln_rules_spec.rb
+++ /dev/null
@@ -1,199 +0,0 @@
-# frozen_string_literal: true
-
-require './lib/colonial_twilight/fln_bot/fln_rules'
-require './lib/colonial_twilight/board'
-require './spec/mock_board'
-
-class FLNRulesImpl
- include ColonialTwilight::FLNRules
-end
-
-describe ColonialTwilight::FLNRules do
- rules = FLNRulesImpl.new
-
- before do
- @board = ColonialTwilight::Board.new
- end
-
- describe 'Rally' do
- it 'collects spaces where operation can be conducted' do
- expect(rules.rally_spaces(@board).size).to eq(28)
- end
-
- it 'collects spaces where operation can be conducted' do
- @board.load :short
- # 25 sectors + 2 countries
- expect(rules.rally_spaces(@board).size).to eq(27)
- end
-
- it 'may_rally_in? sector' do
- a = Sector.new
- expect(rules.may_rally_in?(a)).to be true
- end
-
- it 'may_rally_in? in city not at support' do
- a = Sector.new({ name: 'city', support: false })
- expect(rules.may_rally_in?(a)).to be true
- end
-
- it 'may_rally_in? not in city at support' do
- a = Sector.new({ name: 'city', support: true })
- expect(rules.may_rally_in?(a)).to be false
- end
-
- it 'may_rally_in? in independent country' do
- a = Sector.new({ name: 'country', independent: true })
- expect(rules.may_rally_in?(a)).to be true
- end
-
- it 'may_rally_in? not in not independent country' do
- a = Sector.new({ name: 'country', independent: false })
- expect(rules.may_rally_in?(a)).to be false
- end
-
- it 'may place 1 guerrillas' do
- a = Sector.new({ pop: 3 })
- expect(rules.max_placable_guerrillas(a)).to eq(1)
- end
-
- it 'may place pop + base guerrillas' do
- a = Sector.new({ pop: 3, fln_bases: 2 })
- expect(rules.max_placable_guerrillas(a)).to eq(5)
- end
- end
-
- describe 'Agitate' do
- it 'collects spaces where operation can be conducted' do
- expect(rules.agitate_spaces(@board).size).to eq(0)
- end
-
- it 'collects spaces where operation can be conducted' do
- @board.load :short
- # 4 with bases + 1 in fln control : but only 1 without fln control
- expect(rules.agitate_spaces(@board).size).to eq(1)
- end
-
- it 'compute agitate cost terror and shift' do
- a = Sector.new(terror: 2)
- expect(rules.max_agitate_cost(a)).to eq(3)
- end
-
- it 'compute agitate terror' do
- a = Sector.new(terror: 1, oppose: true)
- expect(rules.max_agitate_cost(a)).to eq(1)
- end
- end
-
- describe 'Attack' do
- it 'collects spaces where operation can be conducted' do
- # 25 sectors + 3 cities
- expect(rules.attack_spaces(@board).size).to eq(0)
- end
-
- it 'collects spaces where operation can be conducted' do
- @board.load :short
- # 25 sectors + 2 countries
- expect(rules.attack_spaces(@board).size).to eq(7)
- end
- end
-
- describe 'Terror' do
- it 'collects spaces where operation can be conducted' do
- expect(rules.terror_spaces(@board).size).to eq(0)
- end
-
- it 'collects spaces where operation can be conducted' do
- # 6 sectors
- @board.load :short
- expect(rules.terror_spaces(@board).size).to eq(6)
- end
- end
-
- describe 'Extort' do
- it 'collects spaces where operation can be conducted' do
- expect(rules.extort_spaces(@board).size).to eq(0)
- end
-
- it 'collects spaces where operation can be conducted' do
- @board.load :short
- # 2 sectors + 2 countries
- expect(rules.extort_spaces(@board).size).to eq(4)
- end
- end
-
- describe 'Subvert' do
- it 'collects spaces where operation can be conducted' do
- expect(rules.subvert_spaces(@board).size).to eq(0)
- end
-
- it 'collects spaces where operation can be conducted' do
- @board.load :short
- # 4 sectors
- expect(rules.subvert_spaces(@board).size).to eq(4)
- end
- end
-
- describe 'Ambush' do
- it 'collects spaces where operation can be conducted' do
- # 25 sectors + 3 cities
- expect(rules.ambush_spaces(@board).size).to eq(0)
- end
-
- it 'collects spaces where operation can be conducted' do
- @board.load :short
- # 25 sectors + 2 countries
- expect(rules.ambush_spaces(@board).size).to eq(7)
- end
- end
-
- describe 'OAS' do
- it 'collects spaces where operation can be conducted' do
- # 14 sectors + 3 cities
- expect(rules.oas_spaces(@board).size).to eq(17)
- end
-
- it 'collects spaces where operation can be conducted' do
- @board.load :short
- # 11 sectors + 3 countries
- expect(rules.oas_spaces(@board).size).to eq(14)
- end
- end
-
- describe 'March' do
- it 'may keep on' do
- expect(rules.must_stop?(@board.by_name('Saida'), @board.by_name('Mecheria'))).to be false
- end
-
- it 'must stop when crossing international borders' do
- expect(rules.must_stop?(@board.by_name('Morocco'), @board.by_name('Mecheria'))).to be true
- end
-
- it 'must stop when crossing international borders' do
- expect(rules.must_stop?(@board.by_name('Tebessa'), @board.by_name('Tunisia'))).to be true
- end
-
- it 'must stop when crossing a wilaya border' do
- expect(rules.must_stop?(@board.by_name('Setif'), @board.by_name('Barika'))).to be true
- end
-
- it 'must not activate' do
- expect(rules.must_activate?(@board, @board.by_name('Setif'), @board.by_name('Barika'))).to be false
- end
-
- it 'might activate when support' do
- c = @board.by_name('Constantine')
- c.alignment = :support
- c.add :french_troops, 1
- expect(rules.must_activate?(@board, @board.by_name('Setif'), c, 2)).to be false
- expect(rules.must_activate?(@board, @board.by_name('Setif'), c, 3)).to be true
- end
-
- it 'might activate when crossing border' do
- c = @board.by_name('Mecheria')
- c.add :french_troops, 1
- expect(rules.must_activate?(@board, @board.by_name('Morocco'), c, 2)).to be false
- expect(rules.must_activate?(@board, @board.by_name('Morocco'), c, 3)).to be true
- end
-
- end
-end