diff options
Diffstat (limited to 'tests/accept/run/tmatrix.nim')
-rwxr-xr-x | tests/accept/run/tmatrix.nim | 60 |
1 files changed, 0 insertions, 60 deletions
diff --git a/tests/accept/run/tmatrix.nim b/tests/accept/run/tmatrix.nim deleted file mode 100755 index a162d0f10..000000000 --- a/tests/accept/run/tmatrix.nim +++ /dev/null @@ -1,60 +0,0 @@ -# Test overloading of [] with multiple indices - -type - TMatrix* = object - data: seq[float] - fWidth, fHeight: int - -template `|`(x, y: int): expr = y * m.fWidth + x - -proc createMatrix*(width, height: int): TMatrix = - result.fWidth = width - result.fHeight = height - newSeq(result.data, width*height) - -proc width*(m: TMatrix): int {.inline.} = return m.fWidth -proc height*(m: TMatrix): int {.inline.} = return m.fHeight - -proc `[,]`*(m: TMatrix, x, y: int): float {.inline.} = - result = m.data[x|y] - -proc `[,]=`*(m: var TMatrix, x, y: int, val: float) {.inline.} = - m.data[x|y] = val - -proc `[$ .. $, $ .. $]`*(m: TMatrix, a, b, c, d: int): TMatrix = - result = createMatrix(b-a+1, d-c+1) - for x in a..b: - for y in c..d: - result[x-a, y-c] = m[x, y] - -proc `[$ .. $, $ .. $]=`*(m: var TMatrix, a, b, c, d: int, val: float) = - for x in a..b: - for y in c..d: - m[x, y] = val - -proc `[$ .. $, $ .. $]=`*(m: var TMatrix, a, b, c, d: int, val: TMatrix) = - assert val.width == b-a+1 - assert val.height == d-c+1 - for x in a..b: - for y in c..d: - m[x, y] = val[x-a, y-c] - -proc `-|`*(m: TMatrix): TMatrix = - ## transposes a matrix - result = createMatrix(m.height, m.width) - for x in 0..m.width-1: - for y in 0..m.height-1: result[y,x] = m[x,y] - -#m.row(0, 2) # select row -#m.col(0, 89) # select column - -const - w = 3 - h = 20 - -var m = createMatrix(w, h) -for i in 0..w-1: - m[i, i] = 1.0 - -for i in 0..w-1: - stdout.write(m[i,i]) #OUT 111 |