vendredi 5 février 2021

How to test class methods in python3

I am trying to create a class that could check a square is magic or not. However, I have no idea about how to test each class methods in 'if name == "main":'. Such as check if the square is full and check if the square is magic, or assign a number to non-empty cell.

Please help me, thank you very much.

class MagicSquare:
def __init__(self, n):
    self.square = []
    self.size = n
    for i in range(self.size):
        row = []
        for j in range(self.size):
            row.append(0)
        self.square.append(row)
def drawSquare(self):
    print(" ", end = "")
    for i in range(self.size):
        print("   ", i, end = "")
    print("\n   +" + "-----" * self.size + "+")
    for i in range(self.size):
        print("",i, "| ", end = "")
        for j in range(self.size):
            if(self.square[i][j] == 0):
                print(" . ","|", end = "")
            else:
                print(self.square[i][j],"|", end = "")
        print("\n   +"+ "-----" * self.size+ "+")
def cellsEmpty(self, row, col):
    if(self.square[row][col] == 0):
        return True
    else:
        return False
def update(self, row, col, num):
    if(self.cellsEmpty(row,col)):
        return False
    else:
        num_already_there = False
        for i in range(self.size):
            for j in range(self.size):
                if(self.square[i][j] == num):
                    num_already_there = True
        if(num_already_there == True):
            return False
        else:

            self.square[i][j] = num
            return True
def isFull(self):
    for i in range(self.size):
        for j in range(self.size):
            if(cellsEmpty(i,j)):
                return False
    return True
def isMagic(self):
    sum_list = []
    sum_list.extend([sum (lines) for lines in self.square])   
    for col in range(self.size):
        sum_list.append(sum(row[col] for row in self.square))
    result1 = 0
    for i in range(0,self.size):
        result1 += self.square[i][i]
    sum_list.append(result1)
    result2 = 0
    for i in range(self.size-1, -1, -1):
        result2 += self.square[i][i]
    sum_list.append(result2)
    if len(set(sum_list)) > 1:
        return False
    else:
        return True
if __name__ == "__main__":
    mySquare = MagicSquare(3)
    mySquare.drawSquare()

Aucun commentaire:

Enregistrer un commentaire