Test Code

project_082_py05.py - test matrix rows/columns

#!/usr/bin/python3 # ==================================================================== # test matrix row/column # I get lost sometimes and this reminds me of the order of row/column # ==================================================================== # ------------------------------------------------------------------- # ---- display helper function - create title string # ---- (standardized the title string format) # ------------------------------------------------------------------- def title_str(title,length=65): if not title: t = '-' * length elif len(title) > length: t = title[:length] else: t = title + '-' * (length - len(title)) return t # ------------------------------------------------------------------- # ---- display a matrix # ---- note: not good for a large matrix. instead output a CSV # ---- file and bring it into a spreadsheet # ---- (or perhaps a JSON object/file?) # ------------------------------------------------------------------- def display_matrix(mtx,title=None,max=65): print(title_str(f'---- {title} ',max)) print(' ',end='') for i in range(len(mtx[0])): print(f'[{i:3}] ',end='') print(' (col)') for idx,row in enumerate(mtx): print(f'[{idx:3}]',end='') for r in row: print(f' {r:>4},',end='') print(' (row)') print(title_str(None,max)) # ------------------------------------------------------------------- # ---- create and initialize to -1 a x-by-x matrix and # ---- optionally set the diagonal # ---- # ---- the resultant matrix index is: mtx[row][column] # ------------------------------------------------------------------- def create_init_matrix(rows,cols,diag=None): mtx = [ [-1 for i in range(cols)] for j in range(rows)] if diag is not None: for idx in range(size): mtx[idx][idx] = diag return mtx # ------------------------------------------------------------------- # ---- main # ------------------------------------------------------------------- # ---- test #1 ------------------------------------------------------- print() mtx1 = create_init_matrix(4,4) print('test #1') print() display_matrix(mtx1,title=f'rows={len(mtx1)},cols={len(mtx1[0])}') # ---- test #2 ------------------------------------------------------- print() mtx2 = create_init_matrix(2,4) print('test #2') print() display_matrix(mtx2,title=f'rows={len(mtx2)},cols={len(mtx2[0])}') # ---- test #3 ------------------------------------------------------- cols = 4 rows = 3 dat = [ [' 0,0',' 0,1',' 0,2',' 0,3'], [' 1,0',' 1,1',' 1,2',' 1,3'], [' 2,0',' 2,1',' 2,2',' 2,3'] ] print() print('test #3A') print() print('print using: "for i in range(len(dat))"') print() for i in range(len(dat)): print(f'row[{i}] dat={dat[i]}') print() print('test #3B') print() print(f'create matrix: "create_init_matrix({rows},{cols})"') print() mtx4 = create_init_matrix(rows,cols) display_matrix(mtx4,title=f'rows={rows},cols={cols}') print() print('test #3C') print() print(f'create matrix: insert data into ({rows},{cols}) matrix') print(' mtx4[r][c] = dat[r][c]') print() for r in range(rows): for c in range(cols): mtx4[r][c] = dat[r][c] display_matrix(mtx4,title=f'rows={rows},cols={cols}')

Results

test #1 ---- rows=4,cols=4 ------------------------------------ [ 0] [ 1] [ 2] [ 3] (col) [ 0] -1, -1, -1, -1, (row) [ 1] -1, -1, -1, -1, (row) [ 2] -1, -1, -1, -1, (row) [ 3] -1, -1, -1, -1, (row) ------------------------------------------------------- test #2 ---- rows=2,cols=4 ------------------------------------ [ 0] [ 1] [ 2] [ 3] (col) [ 0] -1, -1, -1, -1, (row) [ 1] -1, -1, -1, -1, (row) ------------------------------------------------------- test #3A print using: "for i in range(len(dat))" row[0] dat=[' 0,0', ' 0,1', ' 0,2', ' 0,3'] row[1] dat=[' 1,0', ' 1,1', ' 1,2', ' 1,3'] row[2] dat=[' 2,0', ' 2,1', ' 2,2', ' 2,3'] test #3B create matrix: "create_init_matrix(3,4)" ---- rows=3,cols=4 ------------------------------------ [ 0] [ 1] [ 2] [ 3] (col) [ 0] -1, -1, -1, -1, (row) [ 1] -1, -1, -1, -1, (row) [ 2] -1, -1, -1, -1, (row) ------------------------------------------------------- test #3C create matrix: insert data into (3,4) matrix mtx4[r][c] = dat[r][c] ---- rows=3,cols=4 ------------------------------------ [ 0] [ 1] [ 2] [ 3] (col) [ 0] 0,0, 0,1, 0,2, 0,3, (row) [ 1] 1,0, 1,1, 1,2, 1,3, (row) [ 2] 2,0, 2,1, 2,2, 2,3, (row) -------------------------------------------------------