package game import ( "strings" "testing" ) func TestDisjunction(t *testing.T) { mapDef := `map: |1- HST HSF TSW symbols: T: tower H: house F: farm S: street W: deep water ` s := NewLocalState() r := strings.NewReader(mapDef) m, _ := readMap(r) s.SetMap(m) s.AddNewPlayer("player", NewDeck(), nil) p := s.Players()[0] pioneer := NewUnit(NewCard("base/pioneer"), s.Map().TileAt(Position{1, 1}), p) s.addPermanent(pioneer) sword := newEquipmentFromPath("base/sword", s.Map().TileAt(Position{0, 1}), p) s.addPermanent(sword) fa := pioneer.FullActions[0] targets := fa.Targets() if err := targets.AddSelection(s.Map().TileAt(Position{1, 1})); err != nil { t.Fatalf("TileAt(1,1) not a valid target for %v", fa) } if err := targets.CheckTargets(s); err != nil { t.Fatalf("TileAt(1,1) not a valid target for %v", fa) } targets.ClearSelections() if err := targets.AddSelection(sword); err != nil { t.Fatalf("%v not a valid target for %v", sword, fa) } if err := targets.CheckTargets(s); err != nil { t.Fatalf("%v not a valid target for %v", sword, fa) } }