-
Notifications
You must be signed in to change notification settings - Fork 1
/
tests.js
117 lines (98 loc) · 2.9 KB
/
tests.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
const antisimetrica = require('./operacoes/antisimetrica')
const determinante = require('./operacoes/determinante')
const identidade = require('./operacoes/identidade')
const igualdade = require('./operacoes/igualdade')
const multiplicacao = require('./operacoes/multiplicacao')
const produto = require('./operacoes/produto')
const simetrica = require('./operacoes/simetrica')
const soma = require('./operacoes/soma')
const subtracao = require('./operacoes/subtracao')
const transposta = require('./operacoes/transposta')
const assert = require('assert')
const criarMatriz = (ordem, fazer) => {
let matriz = []
let n = 0
for (let l = 0; l < ordem; l++) {
matriz[l] = []
for (let c = 0; c < ordem; c++) {
n++
matriz[l][c] = Math.round(fazer(n, l, c))
}
}
return matriz
}
const a = criarMatriz(2, (n, l, c) => {
return n
})
console.log('A=', a)
const b = criarMatriz(3, (n, l, c) => {
return n
})
console.log('B=', b)
const c = criarMatriz(5, (n, l, c) => {
if (n % 2 == 0) {
return n * (l + c)
}
return 2 + n
})
console.log('C=', c)
const d = criarMatriz(6, (n, l, c) => {
if (n % 2 == 0) return -l
return n - c
})
console.log('D=', d)
const e = criarMatriz(4, (n, l, c) => {
if (l == c) return 1
return 0
})
console.log('E=', e)
const f = [
[2, 3, 5],
[3, 4, 8],
[5, 8, -9]
]
console.log('F=', f)
const g = criarMatriz(2, (n, l, c) => {
return -1 * n
})
console.log('G=', g)
const h = [
[0, 4, -5],
[-4, 0, 8],
[5, -8, 0]
]
console.log('H=', h)
console.log('Ant(a)=', antisimetrica(a))
assert.equal(antisimetrica(a), false)
console.log('Ant(h)=', antisimetrica(h))
assert.equal(antisimetrica(h), true)
console.log('Det(a)=', determinante(a))
assert.equal(determinante(a), -2)
console.log('Det(b)=', determinante(b))
assert.equal(determinante(b), 0)
console.log('Det(c)=', determinante(c))
assert.equal(determinante(c), -860160)
console.log('Det(d)=', determinante(d))
assert.equal(determinante(d), 0)
console.log('Ide(a)=', identidade(a))
assert.equal(identidade(a), false)
console.log('Ide(e)=', identidade(e))
assert.equal(identidade(e), true)
console.log('Igu(a, a)=', igualdade(a, a))
assert.equal(igualdade(a, a), true)
console.log('Igu(a, b)=', igualdade(a, b))
assert.equal(igualdade(a, b), false)
console.log('-1 * a=', multiplicacao(a, -1))
assert.equal(JSON.stringify(multiplicacao(a, -1)), JSON.stringify(g))
console.log('a * a=', produto(a, a))
assert.equal(JSON.stringify(produto(a, a)), JSON.stringify([[7,10],[15,22]]))
console.log('Sim(f)=', simetrica(f))
assert.equal(simetrica(f), true)
console.log('Sim(a)=', simetrica(a))
assert.equal(simetrica(a), false)
console.log('a+a=', soma(a, a))
assert.equal(JSON.stringify(soma(a, a)), JSON.stringify([[2,4],[6,8]]))
console.log('c-c=', subtracao(c, c, true))
assert.equal(JSON.stringify(subtracao(a, a)), JSON.stringify([[0,0],[0,0]]))
console.log('Tra(a)=', transposta(a))
assert.equal(JSON.stringify(transposta(a)), JSON.stringify([[1,3], [2,4]]))