/
test_4enRaya.py
122 lines (99 loc) · 3.82 KB
/
test_4enRaya.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
#! -*- coding:utf-8 -*-
import unittest
from CuatroEnRaya import (Ficha, Jugada, Tablero,
Jugador, Partida)
class TestJugador(unittest.TestCase):
def setUp(self):
fw = Ficha()
self.ju = Jugador(fw, "Alex")
def test_init_jugador(self):
self.assertEquals(self.ju.nombre, "Alex")
self.assertIsInstance(self.ju.ficha, Ficha)
self.assertEquals(self.ju.movimientos, 0)
self.assertEquals(self.ju.jugadas, [])
class TestFicha(unittest.TestCase):
def test_init_color(self):
fw = Ficha()
fb = Ficha("red")
self.assertEquals("X", fw.rep)
self.assertNotEquals("X", fb.rep)
class TestJugada(unittest.TestCase):
def setUp(self):
self.f = Ficha()
self.ju = Jugador(self.f, "Alex")
self.j = Jugada(0,self.ju)
def test_init_jugada(self):
self.assertIsInstance(self.j.ficha,Ficha)
class TestTablero(unittest.TestCase):
def setUp(self):
self.f = Ficha()
self.ju = Jugador(self.f, "Alex")
self.t = Tablero()
def test_init_tablero(self):
self.assertIsInstance(self.t, Tablero)
def llenaTablero(self):
for i in xrange(self.t.w):
for j in xrange(self.t.h):
self.t._inserta(Jugada(i,self.ju))
def vaciaTablero(self):
for i in xrange(self.t.w):
for j in xrange(self.t.h):
self.t.matrix[j][i] = None
def test_lleno_tablero(self):
self.llenaTablero()
for i in xrange(self.t.w):
for j in xrange(self.t.h):
self.assertEquals(self.t.matrix[j][i], self.f)
def test_no_caben(self):
self.llenaTablero()
for i in xrange(self.t.w):
self.assertEquals(self.t._columnaLlena(Jugada(i,self.ju)),True)
self.assertNotEquals(self.t._valida(Jugada(i, self.ju)),True)
def test_tableroLleno(self):
self.llenaTablero()
self.assertEquals(self.t._tableroLleno(),True)
self.vaciaTablero()
self.assertEquals(self.t._tableroLleno(), False)
class TestPartida(unittest.TestCase):
def setUp(self):
self.f1 = Ficha()
self.f2 = Ficha("black")
self.j1 = Jugador(self.f1, "Player1")
self.j2 = Jugador(self.f2, "Player2")
self.t = Tablero()
self.p = Partida(self.j1, self.j2)
def test_init_partida(self):
self.assertNotEquals(self.p.tablero._tableroLleno(), True)
self.assertNotEquals(self.j1, self.j2)
self.assertNotEquals(self.j1.ficha.rep, self.j2.ficha.rep)
def test_partida_tablas(self):
fin = False
#while not fin:
for f in xrange(self.t.h):
for c in xrange(self.t.w):
if (c + f) % 2: ##IMPAR
self.j = Jugada(c, self.j1)
else: ## PAR
self.j = Jugada(c, self.j2)
self.assertEquals(self.p.juegaTurno(self.j),True)
fin = self.p.finPartida(self.j)
self.assertEquals(self.p.tablas(), True)
def test_partida_4raya(self):
for f in xrange(self.t.h):
for c in xrange(self.t.w):
if (c + f) % 2: ##IMPAR
self.j = Jugada(f, self.j1)
else: ## PAR
self.j = Jugada(c, self.j2)
self.assertEquals(self.p.juegaTurno(self.j),True)
fin = self.p.finPartida(self.j)
print self.p.tablero, self.p.last, self.p.movimientos
if self.p.movimientos == 13:
print "FIN: %s" % fin
self.assertEquals(fin, True)
break
"""
PARTICA COMPLETA HATA TABLAS
"""
if __name__ == "__main__":
unittest.main()