Els exemples que compten per la nota són només els que van seguits de # doctesttag: +TAG Tests classe Memory ------------------- >>> from memory import Memory >>> def dibuixa(m): # Funció auxiliar que dibuixa totes les cartes ... for f in range(m.nfils): ... for c in range(m.ncols): ... print(m[f,c], end='') ... print() >>> m = Memory(2, 3) >>> m.nfils, m.ncols # doctesttag: +TAG=1_Memory (2, 3) >>> dibuixa(m) # doctesttag: +TAG=1_Memory *** *** >>> m[0,1], m[0,2] = 'KT' >>> m[1,0], m[1,2] = 'TE' >>> dibuixa(m) # doctesttag: +TAG=1_Memory *KT T*E >>> len(m) # doctesttag: +TAG=1_Memory 4 >>> m[0,0], m[0,2] = '**'; dibuixa(m) # doctesttag: +TAG=1_Memory *K* T*E >>> len(m) # doctesttag: +TAG=1_Memory 3 >>> m.omplir('AAA', 0) >>> dibuixa(m) # doctesttag: +TAG=1_Memory AAA T*E >>> m.omplir('BBB', 1) >>> dibuixa(m) # doctesttag: +TAG=1_Memory AAA BBB >>> m.capgira((0,0), (0,1)) >>> dibuixa(m) # doctesttag: +TAG=1_Memory **A BBB >>> m.capgira((0,2), (1,1)) >>> dibuixa(m) # doctesttag: +TAG=1_Memory **A BBB >>> len(m) 4 >>> m = Memory(3, 8) >>> m.nfils, m.ncols # doctesttag: +TAG=1_Memory (3, 8) >>> len(m) # doctesttag: +TAG=1_Memory 0 >>> dibuixa(m) ******** ******** ******** >>> m[0,0] = 'C' >>> m[2,1] = 'A' >>> m[1,2] = 'B' >>> m[1,4] = 'C' >>> m[1,7] = 'C' >>> m[2,5] = 'K' >>> m[2,7] = 'E' >>> len(m) # doctesttag: +TAG=1_Memory 7 >>> dibuixa(m) # doctesttag: +TAG=1_Memory C******* **B*C**C *A***K*E >>> m[1,4] = '*'; dibuixa(m) # doctesttag: +TAG=1_Memory C******* **B****C *A***K*E >>> m[2,4], m[2,3] = '**'; len(m) # doctesttag: +TAG=1_Memory 6 >>> m.omplir('ABCDEFGH', 0) >>> dibuixa(m) # doctesttag: +TAG=1_Memory ABCDEFGH **B****C *A***K*E >>> m.omplir('BBCCTTAA', 2) >>> dibuixa(m) # doctesttag: +TAG=1_Memory ABCDEFGH **B****C BBCCTTAA >>> len(m) # doctesttag: +TAG=1_Memory 18 >>> m[1,0] = 'X' >>> m[1,0] = '*'; len(m) # doctesttag: +TAG=1_Memory 18 >>> dibuixa(m) # doctesttag: +TAG=1_Memory ABCDEFGH **B****C BBCCTTAA >>> m.omplir('ABCDEFGH', 0) >>> m.omplir('ABCDEFGH', 1) >>> m.omplir('ABCDEFGH', 2) >>> m.capgira((0,0), (2,2)) >>> dibuixa(m) # doctesttag: +TAG=1_Memory ABCDEFGH ABCDEFGH ABCDEFGH >>> m.capgira((2,5), (1,5)) >>> dibuixa(m) # doctesttag: +TAG=1_Memory ABCDEFGH ABCDE*GH ABCDE*GH >>> m.capgira((1,7), (0,7)) >>> dibuixa(m) # doctesttag: +TAG=1_Memory ABCDEFG* ABCDE*G* ABCDE*GH >>> m = Memory(6, 10) >>> m.nfils, m.ncols # doctesttag: +TAG=1_Memory (6, 10) >>> dibuixa(m) # doctesttag: +TAG=1_Memory ********** ********** ********** ********** ********** ********** >>> m[0,0], m[0,9] = 'AB' >>> m[5,0], m[5,9] = 'CD' >>> dibuixa(m) # doctesttag: +TAG=1_Memory A********B ********** ********** ********** ********** C********D >>> len(m) # doctesttag: +TAG=1_Memory 4 >>> m[0,0], m[0,2] = '**'; dibuixa(m) # doctesttag: +TAG=1_Memory *********B ********** ********** ********** ********** C********D >>> len(m) # doctesttag: +TAG=1_Memory 3 >>> m.omplir('AAABBBCCCE', 2) >>> dibuixa(m) # doctesttag: +TAG=1_Memory *********B ********** AAABBBCCCE ********** ********** C********D >>> m.omplir('XXXXXXXXXX', 4) >>> dibuixa(m) # doctesttag: +TAG=1_Memory *********B ********** AAABBBCCCE ********** XXXXXXXXXX C********D >>> m.capgira((0,9), (2,4)) >>> dibuixa(m) # doctesttag: +TAG=1_Memory ********** ********** AAAB*BCCCE ********** XXXXXXXXXX C********D >>> m.omplir('CASTANYADA', 1) >>> m.omplir('IMPOSSIBLE', 3) >>> m.capgira((4,2), (4,8)) >>> dibuixa(m) # doctesttag: +TAG=1_Memory ********** CASTANYADA AAAB*BCCCE IMPOSSIBLE XX*XXXXX*X C********D Tests mètode parelles --------------------- >>> m = Memory(3, 5) >>> m.omplir('ABCCA', 0) >>> m.omplir('AXBXA', 1) >>> m.omplir('HDCFF', 2) >>> for pos in m.parelles('B'): # doctesttag: +TAG=2_parelles ... print(pos, end='-') (0, 1)-(1, 2)- >>> for pos in m.parelles('A'): # doctesttag: +TAG=2_parelles ... print(pos, end='-') (0, 0)-(0, 4)-(1, 0)-(1, 4)- >>> for pos in m.parelles('H'): # doctesttag: +TAG=2_parelles ... print(pos, end='-') (2, 0)- >>> for pos in m.parelles('W'): # doctesttag: +TAG=2_parelles ... print(pos, end='-') >>> m.omplir('XXXXX', 0) >>> m.omplir('XXXXX', 2) >>> m[0,1] = m[1,1] = m[2,2] = '***' >>> for pos in m.parelles('X'): # doctesttag: +TAG=2_parelles ... print(pos, end='-') (0, 0)-(0, 2)-(0, 3)-(0, 4)-(1, 3)-(2, 0)-(2, 1)-(2, 3)-(2, 4)- >>> for pos in m.parelles('A'): # doctesttag: +TAG=2_parelles ... print(pos, end='-') (1, 0)-(1, 4)- Tests classe MemoryPlus ----------------------- >>> from memoryplus import MemoryPlus >>> mp = MemoryPlus(3, 7) >>> mp.nfils, mp.ncols, mp.npunts1, mp.npunts2 # doctesttag: +TAG=3_MemoryPlus (3, 7, 0, 0) >>> mp.omplir('ABXCCAH', 0) >>> mp.omplir('B@DX@EC', 1) >>> mp.omplir('XDCFX@@', 2) >>> mp.capgira((0,2), (2,0), 1) >>> mp.npunts1, mp.npunts2 # doctesttag: +TAG=3_MemoryPlus (2, 0) >>> dibuixa(mp) # doctesttag: +TAG=3_MemoryPlus AB*CCAH B@DX@EC *DCFX@@ >>> mp.capgira((2,1), (1,2), 2) >>> mp.npunts1, mp.npunts2 # doctesttag: +TAG=3_MemoryPlus (2, 2) >>> dibuixa(mp) # doctesttag: +TAG=3_MemoryPlus AB*CCAH B@*X@EC **CFX@@ >>> mp.capgira((2,3), (2,4), 1) >>> mp.npunts1, mp.npunts2 # doctesttag: +TAG=3_MemoryPlus (2, 2) >>> dibuixa(mp) # doctesttag: +TAG=3_MemoryPlus AB*CCAH B@*X@EC **CFX@@ >>> mp.capgira((1,1), (1,6), 1) >>> mp.npunts1, mp.npunts2 # doctesttag: +TAG=3_MemoryPlus (3, 2) >>> dibuixa(mp) # doctesttag: +TAG=3_MemoryPlus AB*CCAH B**X@EC **CFX@@ >>> mp.capgira((0,0), (2,5), 2) >>> mp.npunts1, mp.npunts2, len(mp) # doctesttag: +TAG=3_MemoryPlus (3, 3, 15)