def test_platziere_schiffe(self): spielfeld: Spielfeld = Spielfeld() self.master.platziere_schiff(spielfeld, Schiff("Schlachtschiff", 5), Koordinate("A", 1, Richtung.SUEDEN)) with patch('sys.stdout', new=StringIO()) as fake_out: self.master.print_spielfeld(spielfeld) count_schiffe = fake_out.getvalue().count('#') self.assertEqual(count_schiffe, 5)
def test_koordinaten(self): x_A = "A" x_1 = 1 y_A = "A" y_1 = 1 koordinate_x_string = Koordinate(x_A, y_1) koordinate_x_int = Koordinate(x_1, y_1) koordinate_y_string = Koordinate(x_1, y_A) koordinate_x_y_string = Koordinate(x_A, y_A) self.assertEqual(koordinate_x_string.x_position, 0) self.assertEqual(koordinate_x_string.y_position, 0) self.assertEqual(koordinate_x_int.x_position, 0) self.assertEqual(koordinate_x_int.y_position, 0) self.assertEqual(koordinate_y_string.x_position, 0) self.assertEqual(koordinate_y_string.y_position, 0) self.assertEqual(koordinate_x_y_string.x_position, 0) self.assertEqual(koordinate_x_y_string.y_position, 0) koordinate_mit_richtung = Koordinate(x_1, y_1, Richtung.NORDEN) self.assertEqual(koordinate_mit_richtung.richtung, Richtung.NORDEN) koordinate_mit_richtung.richtung = Richtung.SUEDEN self.assertEqual(koordinate_mit_richtung.richtung, Richtung.SUEDEN)
def test_is_tot(self): test_spieler = Spieler("TestName", Spielfeld(), Spielfeld(), 0) #Spielfeld von vorne rein Leer - somit kein Schiff mehr vorhanden -> tot self.assertEqual(test_spieler.is_tot(), True) test_spieler.update_spielfeld(Koordinate(1, 1), Status.SCHIFF) self.assertEqual(test_spieler.is_tot(), False)
def test_set_feld(self): spielfeld_obj = Spielfeld() statusse = list(Status) for y in range(1, 11): for x in range(1, 11): status = random.choice(statusse) position = Koordinate(x, y) spielfeld_obj.set_feld(status, position) self.assertEqual(spielfeld_obj.spielfeld[x - 1][y - 1], status)
def test_get_status_bei(self): spielfeld_obj = Spielfeld() statusse = list(Status) for y in range(1, 11): for x in range(1, 11): koordinate = Koordinate(x, y) status = random.choice(statusse) spielfeld_obj.spielfeld[x - 1][y - 1] = status spielfeld_status = spielfeld_obj.get_status_bei(koordinate) self.assertEqual(status, spielfeld_status)
def test_update_spielfeld(self): statusse = list(Status) test_spieler = Spieler("TestName", Spielfeld(), Spielfeld(), 0) for y in range(1, 11): for x in range(1, 11): koordinate = Koordinate(x, y) status = random.choice(statusse) test_spieler.update_spielfeld(koordinate, status) status_spielfeld = test_spieler.spielfeld.get_status_bei( koordinate) self.assertEqual(status, status_spielfeld)
def test_wird_abgeschossen(self): statusse = list(Status) test_spieler = Spieler("TestName", Spielfeld(), Spielfeld(), 0) for y in range(1, 11): for x in range(1, 11): koordinate = Koordinate(x, y) status = random.choice(statusse) test_spieler.update_spielfeld(koordinate, status) if status == Status.SCHIFF: return_schuss = test_spieler.wird_abgeschossen(koordinate) self.assertEqual(return_schuss, Status.TREFFER) else: return_schuss = test_spieler.wird_abgeschossen(koordinate) self.assertEqual(return_schuss, status)
def test_plaziere_schiff(self): spielfeld_obj = Spielfeld() schiff = Schiff("U-Boot", 2) spielfeld_mit_plaziertem_schiff_sueden = [ [ Status.SCHIFF, Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ] ] spielfeld_mit_plaziertem_schiff_osten = [ [ Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ] ] koordinate = Koordinate(1, 1, Richtung.SUEDEN) # index [0][0] sueden spielfeld_obj.plaziere_schiff(koordinate, schiff) self.assertEqual(spielfeld_obj.spielfeld, spielfeld_mit_plaziertem_schiff_sueden) spielfeld_obj.reset() koordinate = Koordinate(1, 1, Richtung.OSTEN) # index [0][0] osten spielfeld_obj.plaziere_schiff(koordinate, schiff) self.assertEqual(spielfeld_obj.spielfeld, spielfeld_mit_plaziertem_schiff_osten) spielfeld_obj.reset() koordinate = Koordinate(1, 1, Richtung.NORDEN) # index [0][0] norden self.assertRaises(IndexError, spielfeld_obj.plaziere_schiff, koordinate, schiff) koordinate = Koordinate(1, 1, Richtung.WESTEN) # index [0][0] westen self.assertRaises(IndexError, spielfeld_obj.plaziere_schiff, koordinate, schiff) koordinate = Koordinate(12, 1, Richtung.NORDEN) # index fehlerhaft self.assertRaises(IndexError, spielfeld_obj.plaziere_schiff, koordinate, schiff) koordinate = Koordinate("Z", 1, Richtung.NORDEN) # index fehlerhaft self.assertRaises(IndexError, spielfeld_obj.plaziere_schiff, koordinate, schiff) spielfeld_obj_befuellt = Spielfeld(spielfeld=self.befuelltes_spielfeld) koordinate_befuellt = Koordinate(4, 8, Richtung.NORDEN) # index[3][7] norden self.assertRaises(IndexError, spielfeld_obj_befuellt.plaziere_schiff, koordinate_befuellt, schiff)
def setUp(self) -> None: self.master = Master() self.befuelltes_spielfeld_list = [ [ Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.SCHIFF, Status.WASSER, Status.TREFFER, Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.SCHIFF, Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.SCHIFF, Status.TREFFER, Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.SCHIFF, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.SCHIFF, Status.WASSER ], [ Status.DANEBEN, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.SCHIFF, Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ] ] self.befuelltes_spielfeld_letzter_schuss_list = [ [ Status.SCHIFF, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ], [ Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER, Status.WASSER ] ] self.befuelltes_spielfeld = Spielfeld( spielfeld=self.befuelltes_spielfeld_list) self.befuelltes_spielfeld_letzter_schuss = Spielfeld( spielfeld=self.befuelltes_spielfeld_letzter_schuss_list) self.spieler_1 = Spieler("Test1", self.befuelltes_spielfeld, Spielfeld(), 0) self.master.aktueller_spieler = self.spieler_1 self.master.spieler_1 = self.spieler_1 self.spieler_2 = Spieler("Test2", self.befuelltes_spielfeld, Spielfeld(), 0) self.master.spieler_2 = self.spieler_2 self.master.aktueller_gegner = self.spieler_2 self.test_get_user_input_koordinate = Koordinate('A', 10) self.test_ungueltige_koordinate = Koordinate('A', 12) self.test_koordinate_treffer = Koordinate('A', 1) self.test_koordinate_daneben = Koordinate('E', 1) return super().setUp()