File utils refactor and unittests

Create unit test for file utils
closes #25
closes #26
This commit is contained in:
Marc-Antoine Lafreniere
2019-02-11 22:45:41 -05:00
parent 8ca056fcdb
commit 453a3f7c08
8 changed files with 5804 additions and 42 deletions

View File

@@ -0,0 +1,30 @@
import math
class FileUtils:
@staticmethod
def pbmToCsv(pbmFile, dimensionLineIndex = 2):
completeFile = []
file = open(pbmFile, 'r')
lines = file.readlines()
width, height = (int(val) for val in lines[dimensionLineIndex].split())
file.close()
for line in lines[dimensionLineIndex + 1:]:
for val in line.split():
completeFile += [int(val)]
matrix = [[0 for i in range(width)] for j in range(height)]
for index, value in enumerate(completeFile):
matrix[math.floor(index / width)][index % width] = value
return matrix
@staticmethod
def saveMatrixToFile(matrix, filePath):
with open(filePath, 'w') as f:
for x in matrix:
for y in x:
f.write('%s ' % y )
f.write('\n')
f.close()

View File

@@ -0,0 +1,14 @@
def readIntFile(filePath):
completeFile = []
file = open(filePath, 'r')
lines = file.readlines()
file.close()
for line in lines:
tempArray = []
for val in line.split():
tempArray.append(int(val))
completeFile.append(tempArray)
return completeFile

View File

@@ -1,24 +0,0 @@
import math
"""
Reformat the file receive by the binary to ascii converter to have matrix with the right width and height
"""
def formatPbm(pbmFile):
dimensionLineIndex = 2
completeFile = []
lines = open(pbmFile, 'r').readlines()
width, height = (int(val) for val in lines[dimensionLineIndex].split())
for line in lines[dimensionLineIndex+1:]:
for val in line.split():
completeFile += [int(val)]
formattedFile = [[0 for i in range(width)] for j in range(height)]
for index, value in enumerate(completeFile):
formattedFile[math.floor(index/width)][index%width] = value
return formattedFile

View File

@@ -1,11 +0,0 @@
"""
Save a two dimension array in a file
"""
def matrixToFile(matrix, fileName):
with open(fileName, 'w') as f:
for x in matrix:
for y in x:
f.write('%s ' % y )
f.write('\n')