@designliquido/foles 0.9.3 → 0.9.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fontes/modificadores/conteudo.d.ts +3 -1
- package/fontes/modificadores/conteudo.js +13 -1
- package/fontes/modificadores/conteudo.js.map +1 -1
- package/fontes/modificadores/estilo-lista-imagem.d.ts +3 -1
- package/fontes/modificadores/estilo-lista-imagem.js +13 -1
- package/fontes/modificadores/estilo-lista-imagem.js.map +1 -1
- package/fontes/modificadores/filtro-fundo.d.ts +3 -1
- package/fontes/modificadores/filtro-fundo.js +13 -1
- package/fontes/modificadores/filtro-fundo.js.map +1 -1
- package/fontes/modificadores/filtro.d.ts +3 -1
- package/fontes/modificadores/filtro.js +13 -1
- package/fontes/modificadores/filtro.js.map +1 -1
- package/fontes/modificadores/forma-externa.d.ts +3 -1
- package/fontes/modificadores/forma-externa.js +13 -1
- package/fontes/modificadores/forma-externa.js.map +1 -1
- package/fontes/modificadores/grade.d.ts +3 -1
- package/fontes/modificadores/grade.js +13 -1
- package/fontes/modificadores/grade.js.map +1 -1
- package/fontes/modificadores/imagem-mascara.d.ts +3 -1
- package/fontes/modificadores/imagem-mascara.js +13 -1
- package/fontes/modificadores/imagem-mascara.js.map +1 -1
- package/fontes/modificadores/origem-borda-mascara.d.ts +3 -1
- package/fontes/modificadores/origem-borda-mascara.js +13 -1
- package/fontes/modificadores/origem-borda-mascara.js.map +1 -1
- package/fontes/modificadores/origem-imagem-borda.d.ts +3 -1
- package/fontes/modificadores/origem-imagem-borda.js +13 -1
- package/fontes/modificadores/origem-imagem-borda.js.map +1 -1
- package/fontes/modificadores/superclasse/seletor-modificador.d.ts +2 -1
- package/fontes/modificadores/superclasse/seletor-modificador.js.map +1 -1
- package/fontes/modificadores/tempo-transicao.d.ts +3 -1
- package/fontes/modificadores/tempo-transicao.js +13 -1
- package/fontes/modificadores/tempo-transicao.js.map +1 -1
- package/fontes/modificadores/trajeto-deslocamento.d.ts +3 -1
- package/fontes/modificadores/trajeto-deslocamento.js +13 -1
- package/fontes/modificadores/trajeto-deslocamento.js.map +1 -1
- package/fontes/modificadores/transformar.d.ts +3 -1
- package/fontes/modificadores/transformar.js +13 -1
- package/fontes/modificadores/transformar.js.map +1 -1
- package/fontes/modificadores/validacoes/comum.d.ts +2 -2
- package/fontes/modificadores/validacoes/comum.js +3 -2
- package/fontes/modificadores/validacoes/comum.js.map +1 -1
- package/fontes/modificadores/velocidade-animacao.d.ts +3 -1
- package/fontes/modificadores/velocidade-animacao.js +13 -1
- package/fontes/modificadores/velocidade-animacao.js.map +1 -1
- package/fontes/tradutores/tradutor.js +1 -4
- package/fontes/tradutores/tradutor.js.map +1 -1
- package/fontes/valores/metodos/css/metodo-css.d.ts +1 -0
- package/fontes/valores/metodos/css/metodo-css.js.map +1 -1
- package/fontes/valores/metodos/foles/metodo.d.ts +1 -0
- package/fontes/valores/metodos/foles/metodo.js.map +1 -1
- package/package.json +1 -1
- package/testes/modificadores/metodos-reversos.test.js +1476 -1478
- package/testes/modificadores/metodos-reversos.test.js.map +1 -1
|
@@ -12,133 +12,46 @@ const metodos_css_1 = require("../listas/metodos-css");
|
|
|
12
12
|
const declaracoes_1 = require("../../fontes/declaracoes");
|
|
13
13
|
const seletor_valor_reverso_1 = require("../../fontes/valores/seletor-valor-reverso");
|
|
14
14
|
describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
30
|
-
// Lexador
|
|
31
|
-
const resultadoLexador = lexador.mapear([
|
|
32
|
-
"div {",
|
|
33
|
-
`${metodos_css_1.MetodoBorrar[index]}: blur(${valoresAceitos[valIndex]});`,
|
|
34
|
-
"}"
|
|
35
|
-
]);
|
|
36
|
-
// O Lexador não deve encontrar erros
|
|
37
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
38
|
-
// O valor recebido deve ser mapeado como METODO
|
|
39
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
40
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
41
|
-
]));
|
|
42
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
43
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
44
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
45
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
46
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
47
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
48
|
-
]));
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
52
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
53
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
54
|
-
]));
|
|
55
|
-
}
|
|
56
|
-
// Avaliador Sintático
|
|
57
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
58
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
59
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
60
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
61
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
62
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
63
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
64
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoBorrar[index]);
|
|
65
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBorrar[index]]);
|
|
66
|
-
// Tradutor
|
|
67
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
68
|
-
// O Tradutor deve serializar de acordo e traduzir blur para borrar
|
|
69
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBorrar[index]]);
|
|
70
|
-
expect(resultadoTradutor).toContain(`borrar(${valoresAceitos[valIndex]});`);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
});
|
|
74
|
-
it('Atribuindo Método "brightness()"', () => {
|
|
75
|
-
for (let index = 0; index < metodos_css_1.MetodoBrilho.length; index += 1) {
|
|
76
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
77
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
78
|
-
// Lexador
|
|
79
|
-
const resultadoLexador = lexador.mapear([
|
|
80
|
-
"div {",
|
|
81
|
-
`${metodos_css_1.MetodoBrilho[index]}: brightness(${valoresAceitos[valIndex]});`,
|
|
82
|
-
"}"
|
|
83
|
-
]);
|
|
84
|
-
// O Lexador não deve encontrar erros
|
|
85
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
86
|
-
// O valor recebido deve ser mapeado como METODO
|
|
87
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
88
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
89
|
-
]));
|
|
90
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
91
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
92
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
93
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
94
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
95
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
96
|
-
]));
|
|
97
|
-
}
|
|
98
|
-
else {
|
|
99
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
100
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
101
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
102
|
-
]));
|
|
103
|
-
}
|
|
104
|
-
// Avaliador Sintático
|
|
105
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
106
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
107
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
108
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
109
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
110
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
111
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
112
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoBrilho[index]);
|
|
113
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBrilho[index]]);
|
|
114
|
-
// Tradutor
|
|
115
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
116
|
-
// O Tradutor deve serializar de acordo e traduzir brightness para brilho
|
|
117
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBrilho[index]]);
|
|
118
|
-
expect(resultadoTradutor).toContain(`brilho(${valoresAceitos[valIndex]});`);
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
it('Atribuindo Método "calc()"', () => {
|
|
123
|
-
for (let index = 0; index < metodos_css_1.MetodoCalcular.length; index += 1) {
|
|
15
|
+
let lexador;
|
|
16
|
+
let importador;
|
|
17
|
+
let avaliador;
|
|
18
|
+
let tradutor;
|
|
19
|
+
beforeEach(() => {
|
|
20
|
+
lexador = new lexador_reverso_1.LexadorReverso();
|
|
21
|
+
importador = new importador_1.Importador(lexador);
|
|
22
|
+
avaliador = new avaliador_sintatico_reverso_1.AvaliadorSintaticoReverso(importador);
|
|
23
|
+
tradutor = new serializadores_1.SerializadorReverso();
|
|
24
|
+
});
|
|
25
|
+
it('Atribuindo Método "blur()"', () => {
|
|
26
|
+
for (let index = 0; index < metodos_css_1.MetodoBorrar.length; index += 1) {
|
|
27
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
28
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
124
29
|
// Lexador
|
|
125
30
|
const resultadoLexador = lexador.mapear([
|
|
126
31
|
"div {",
|
|
127
|
-
`${metodos_css_1.
|
|
32
|
+
`${metodos_css_1.MetodoBorrar[index]}: blur(${valoresAceitos[valIndex]});`,
|
|
128
33
|
"}"
|
|
129
34
|
]);
|
|
130
|
-
// O Lexador deve
|
|
131
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
35
|
+
// O Lexador não deve encontrar erros
|
|
132
36
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
133
37
|
// O valor recebido deve ser mapeado como METODO
|
|
134
38
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
135
39
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
136
40
|
]));
|
|
137
|
-
// O Lexador
|
|
138
|
-
|
|
139
|
-
expect
|
|
140
|
-
expect.
|
|
141
|
-
|
|
41
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
42
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
43
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
44
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
45
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
46
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
47
|
+
]));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
51
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
52
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
53
|
+
]));
|
|
54
|
+
}
|
|
142
55
|
// Avaliador Sintático
|
|
143
56
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
144
57
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -147,79 +60,46 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
147
60
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
148
61
|
const primeiroResultadoTipado = primeiroResultado;
|
|
149
62
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
150
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
151
|
-
|
|
63
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoBorrar[index]);
|
|
64
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBorrar[index]]);
|
|
65
|
+
// Tradutor
|
|
152
66
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
153
|
-
|
|
154
|
-
expect(resultadoTradutor).toContain(
|
|
155
|
-
|
|
156
|
-
});
|
|
157
|
-
it('Atribuindo Método "contrast()"', () => {
|
|
158
|
-
for (let index = 0; index < metodos_css_1.MetodoContraste.length; index += 1) {
|
|
159
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
160
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
161
|
-
// Lexador
|
|
162
|
-
const resultadoLexador = lexador.mapear([
|
|
163
|
-
"div {",
|
|
164
|
-
`${metodos_css_1.MetodoContraste[index]}: contrast(${valoresAceitos[valIndex]});`,
|
|
165
|
-
"}"
|
|
166
|
-
]);
|
|
167
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
168
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
169
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
170
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
171
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
172
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
173
|
-
]));
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
177
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
178
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
179
|
-
]));
|
|
180
|
-
}
|
|
181
|
-
// O Lexador não deve encontrar erros
|
|
182
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
183
|
-
// O valor recebido deve ser mapeado como METODO
|
|
184
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
185
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
186
|
-
]));
|
|
187
|
-
// Avaliador Sintático
|
|
188
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
189
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
190
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
191
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
192
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
193
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
194
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
195
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoContraste[index]);
|
|
196
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoContraste[index]]);
|
|
197
|
-
// Tradutor deve serializar de acordo e traduzir contrast para contraste
|
|
198
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
199
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoContraste[index]]);
|
|
200
|
-
expect(resultadoTradutor).toContain(`contraste(${valoresAceitos[valIndex]});`);
|
|
201
|
-
}
|
|
67
|
+
// O Tradutor deve serializar de acordo e traduzir blur para borrar
|
|
68
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBorrar[index]]);
|
|
69
|
+
expect(resultadoTradutor).toContain(`borrar(${valoresAceitos[valIndex]});`);
|
|
202
70
|
}
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
it('Atribuindo Método "brightness()"', () => {
|
|
74
|
+
for (let index = 0; index < metodos_css_1.MetodoBrilho.length; index += 1) {
|
|
75
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
76
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
206
77
|
// Lexador
|
|
207
78
|
const resultadoLexador = lexador.mapear([
|
|
208
79
|
"div {",
|
|
209
|
-
`${metodos_css_1.
|
|
80
|
+
`${metodos_css_1.MetodoBrilho[index]}: brightness(${valoresAceitos[valIndex]});`,
|
|
210
81
|
"}"
|
|
211
82
|
]);
|
|
212
|
-
// O Lexador deve
|
|
213
|
-
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
83
|
+
// O Lexador não deve encontrar erros
|
|
214
84
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
215
85
|
// O valor recebido deve ser mapeado como METODO
|
|
216
86
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
217
87
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
218
88
|
]));
|
|
219
|
-
// O Lexador
|
|
220
|
-
|
|
221
|
-
expect
|
|
222
|
-
|
|
89
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
90
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
91
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
92
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
93
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
94
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
95
|
+
]));
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
99
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
100
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
101
|
+
]));
|
|
102
|
+
}
|
|
223
103
|
// Avaliador Sintático
|
|
224
104
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
225
105
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -228,33 +108,81 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
228
108
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
229
109
|
const primeiroResultadoTipado = primeiroResultado;
|
|
230
110
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
231
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
111
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoBrilho[index]);
|
|
112
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBrilho[index]]);
|
|
232
113
|
// Tradutor
|
|
233
114
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
234
|
-
|
|
235
|
-
expect(resultadoTradutor).toContain(
|
|
115
|
+
// O Tradutor deve serializar de acordo e traduzir brightness para brilho
|
|
116
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoBrilho[index]]);
|
|
117
|
+
expect(resultadoTradutor).toContain(`brilho(${valoresAceitos[valIndex]});`);
|
|
236
118
|
}
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
it('Atribuindo Método "calc()"', () => {
|
|
122
|
+
for (let index = 0; index < metodos_css_1.MetodoCalcular.length; index += 1) {
|
|
123
|
+
// Lexador
|
|
124
|
+
const resultadoLexador = lexador.mapear([
|
|
125
|
+
"div {",
|
|
126
|
+
`${metodos_css_1.MetodoCalcular[index]}: calc(100px - 80px);`,
|
|
127
|
+
"}"
|
|
128
|
+
]);
|
|
129
|
+
// O Lexador deve montar um objeto de comprimento 14 sem retornar nenhum erro
|
|
130
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
131
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
132
|
+
// O valor recebido deve ser mapeado como METODO
|
|
133
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
134
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
135
|
+
]));
|
|
136
|
+
// O Lexador também deve encontrar números e quantificadores no mapeamento
|
|
137
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
138
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
139
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
140
|
+
]));
|
|
141
|
+
// Avaliador Sintático
|
|
142
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
143
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
144
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
145
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
146
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
147
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
148
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
149
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoCalcular[index]);
|
|
150
|
+
// Tradutor deve serializar de acordo e traduzir calc para calcular
|
|
151
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
152
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoCalcular[index]]);
|
|
153
|
+
expect(resultadoTradutor).toContain('calcular(100px - 80px);');
|
|
154
|
+
}
|
|
155
|
+
});
|
|
156
|
+
it('Atribuindo Método "contrast()"', () => {
|
|
157
|
+
for (let index = 0; index < metodos_css_1.MetodoContraste.length; index += 1) {
|
|
158
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
159
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
240
160
|
// Lexador
|
|
241
161
|
const resultadoLexador = lexador.mapear([
|
|
242
162
|
"div {",
|
|
243
|
-
`${metodos_css_1.
|
|
163
|
+
`${metodos_css_1.MetodoContraste[index]}: contrast(${valoresAceitos[valIndex]});`,
|
|
244
164
|
"}"
|
|
245
165
|
]);
|
|
246
|
-
// O Lexador deve montar um objeto de comprimento 11
|
|
247
|
-
|
|
166
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
167
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
168
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
169
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
170
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
171
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
172
|
+
]));
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
176
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
177
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
178
|
+
]));
|
|
179
|
+
}
|
|
180
|
+
// O Lexador não deve encontrar erros
|
|
248
181
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
249
182
|
// O valor recebido deve ser mapeado como METODO
|
|
250
183
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
251
184
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
252
185
|
]));
|
|
253
|
-
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
254
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
255
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
256
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
257
|
-
]));
|
|
258
186
|
// Avaliador Sintático
|
|
259
187
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
260
188
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -263,106 +191,145 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
263
191
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
264
192
|
const primeiroResultadoTipado = primeiroResultado;
|
|
265
193
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
266
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
267
|
-
|
|
194
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoContraste[index]);
|
|
195
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoContraste[index]]);
|
|
196
|
+
// Tradutor deve serializar de acordo e traduzir contrast para contraste
|
|
268
197
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
269
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.
|
|
270
|
-
expect(resultadoTradutor).toContain(
|
|
198
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoContraste[index]]);
|
|
199
|
+
expect(resultadoTradutor).toContain(`contraste(${valoresAceitos[valIndex]});`);
|
|
271
200
|
}
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
201
|
+
}
|
|
202
|
+
});
|
|
203
|
+
it('Atribuindo Método "cubic-bezier()"', () => {
|
|
204
|
+
for (let index = 0; index < metodos_css_1.MetodoCurvaCubica.length; index += 1) {
|
|
205
|
+
// Lexador
|
|
206
|
+
const resultadoLexador = lexador.mapear([
|
|
207
|
+
"div {",
|
|
208
|
+
`${metodos_css_1.MetodoCurvaCubica[index]}: cubic-bezier(0.42, 0.0, 1.0, 1.0);`,
|
|
209
|
+
"}"
|
|
210
|
+
]);
|
|
211
|
+
// O Lexador deve montar um objeto de comprimento 16 sem retornar nenhum erro
|
|
212
|
+
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
213
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
214
|
+
// O valor recebido deve ser mapeado como METODO
|
|
215
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
216
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
217
|
+
]));
|
|
218
|
+
// O Lexador também deve encontrar números no mapeamento
|
|
219
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
220
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
221
|
+
]));
|
|
222
|
+
// Avaliador Sintático
|
|
223
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
224
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
225
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
226
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
227
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
228
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
229
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
230
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoCurvaCubica[index]);
|
|
231
|
+
// Tradutor
|
|
232
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
233
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoCurvaCubica[index]]);
|
|
234
|
+
expect(resultadoTradutor).toContain('curva-cubica(0.42, 0, 1, 1);');
|
|
235
|
+
}
|
|
236
|
+
});
|
|
237
|
+
it('Atribuindo Método "fit-content()"', () => {
|
|
238
|
+
for (let index = 0; index < metodos_css_1.MetodoEncaixarConteudo.length; index += 1) {
|
|
239
|
+
// Lexador
|
|
240
|
+
const resultadoLexador = lexador.mapear([
|
|
241
|
+
"div {",
|
|
242
|
+
`${metodos_css_1.MetodoEncaixarConteudo[index]}: fit-content(200px);`,
|
|
243
|
+
"}"
|
|
244
|
+
]);
|
|
245
|
+
// O Lexador deve montar um objeto de comprimento 11 sem retornar nenhum erro
|
|
246
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
247
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
248
|
+
// O valor recebido deve ser mapeado como METODO
|
|
249
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
250
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
251
|
+
]));
|
|
252
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
253
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
254
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
255
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
256
|
+
]));
|
|
257
|
+
// Avaliador Sintático
|
|
258
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
259
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
260
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
261
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
262
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
263
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
264
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
265
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoEncaixarConteudo[index]);
|
|
266
|
+
// Tradutor
|
|
267
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
268
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoEncaixarConteudo[index]]);
|
|
269
|
+
expect(resultadoTradutor).toContain('encaixar-conteudo(200px)');
|
|
270
|
+
}
|
|
271
|
+
});
|
|
272
|
+
it('Atribuindo Método "grayscale()"', () => {
|
|
273
|
+
for (let index = 0; index < metodos_css_1.MetodoEscalaCinza.length; index += 1) {
|
|
274
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
275
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
276
|
+
// Lexador
|
|
277
|
+
const resultadoLexador = lexador.mapear([
|
|
278
|
+
"div {",
|
|
279
|
+
`${metodos_css_1.MetodoEscalaCinza[index]}: grayscale(${valoresAceitos[valIndex]});`,
|
|
280
|
+
"}"
|
|
281
|
+
]);
|
|
282
|
+
// O Lexador não deve encontrar erros
|
|
283
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
284
|
+
// O valor recebido deve ser mapeado como METODO
|
|
285
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
286
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
287
|
+
]));
|
|
288
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
289
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
290
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
286
291
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
287
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
292
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
293
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
288
294
|
]));
|
|
289
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
290
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
291
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
292
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
293
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
294
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
295
|
-
]));
|
|
296
|
-
}
|
|
297
|
-
else {
|
|
298
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
299
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
300
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
301
|
-
]));
|
|
302
|
-
}
|
|
303
|
-
// Avaliador Sintático
|
|
304
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
305
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
306
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
307
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
308
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
309
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
310
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
311
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoEscalaCinza[index]);
|
|
312
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoEscalaCinza[index]]);
|
|
313
|
-
// Tradutor
|
|
314
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
315
|
-
// O Tradutor deve serializar de acordo e traduzir grayscale para escala-cinza
|
|
316
|
-
expect(resultadoTradutor).toContain(`escala-cinza(${valoresAceitos[valIndex]});`);
|
|
317
295
|
}
|
|
318
|
-
|
|
319
|
-
});
|
|
320
|
-
it('Atribuindo Método "scale()"', () => {
|
|
321
|
-
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
322
|
-
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
323
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
324
|
-
// Lexador
|
|
325
|
-
const resultadoLexador = lexador.mapear([
|
|
326
|
-
"div {",
|
|
327
|
-
`${metodos_css_1.MetodosEscalamento[index]}: scale(${valoresAceitos[valIndex]});`,
|
|
328
|
-
"}"
|
|
329
|
-
]);
|
|
330
|
-
// O Lexador não deve encontrar erros
|
|
331
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
332
|
-
// O Lexador deve montar um objeto de comprimento 10
|
|
296
|
+
else {
|
|
333
297
|
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
334
298
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
335
299
|
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
336
300
|
]));
|
|
337
|
-
// Avaliador Sintático
|
|
338
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
339
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
340
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
341
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
342
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
343
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
344
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
345
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
346
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
347
|
-
// Tradutor
|
|
348
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
349
|
-
// O Tradutor deve serializar de acordo e traduzir scale para escalamento
|
|
350
|
-
expect(resultadoTradutor).toContain(`escalamento(${valoresAceitos[valIndex]});`);
|
|
351
301
|
}
|
|
302
|
+
// Avaliador Sintático
|
|
303
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
304
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
305
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
306
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
307
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
308
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
309
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
310
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoEscalaCinza[index]);
|
|
311
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoEscalaCinza[index]]);
|
|
312
|
+
// Tradutor
|
|
313
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
314
|
+
// O Tradutor deve serializar de acordo e traduzir grayscale para escala-cinza
|
|
315
|
+
expect(resultadoTradutor).toContain(`escala-cinza(${valoresAceitos[valIndex]});`);
|
|
352
316
|
}
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
it('Atribuindo Método "scale()"', () => {
|
|
320
|
+
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
321
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
322
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
356
323
|
// Lexador
|
|
357
324
|
const resultadoLexador = lexador.mapear([
|
|
358
325
|
"div {",
|
|
359
|
-
`${metodos_css_1.MetodosEscalamento[index]}: scale(
|
|
326
|
+
`${metodos_css_1.MetodosEscalamento[index]}: scale(${valoresAceitos[valIndex]});`,
|
|
360
327
|
"}"
|
|
361
328
|
]);
|
|
362
329
|
// O Lexador não deve encontrar erros
|
|
363
330
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
364
|
-
// O Lexador deve montar um objeto de comprimento
|
|
365
|
-
expect(resultadoLexador.simbolos).toHaveLength(
|
|
331
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
332
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
366
333
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
367
334
|
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
368
335
|
]));
|
|
@@ -379,15 +346,85 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
379
346
|
// Tradutor
|
|
380
347
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
381
348
|
// O Tradutor deve serializar de acordo e traduzir scale para escalamento
|
|
382
|
-
expect(resultadoTradutor).toContain(`escalamento(
|
|
349
|
+
expect(resultadoTradutor).toContain(`escalamento(${valoresAceitos[valIndex]});`);
|
|
383
350
|
}
|
|
384
|
-
}
|
|
385
|
-
|
|
386
|
-
|
|
351
|
+
}
|
|
352
|
+
});
|
|
353
|
+
it('Atribuindo Método "scale()" com múltiplos valores', () => {
|
|
354
|
+
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
355
|
+
// Lexador
|
|
356
|
+
const resultadoLexador = lexador.mapear([
|
|
357
|
+
"div {",
|
|
358
|
+
`${metodos_css_1.MetodosEscalamento[index]}: scale(1.3, 0.4);`,
|
|
359
|
+
"}"
|
|
360
|
+
]);
|
|
361
|
+
// O Lexador não deve encontrar erros
|
|
362
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
363
|
+
// O Lexador deve montar um objeto de comprimento 12
|
|
364
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
365
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
366
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
367
|
+
]));
|
|
368
|
+
// Avaliador Sintático
|
|
369
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
370
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
371
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
372
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
373
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
374
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
375
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
376
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
377
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
378
|
+
// Tradutor
|
|
379
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
380
|
+
// O Tradutor deve serializar de acordo e traduzir scale para escalamento
|
|
381
|
+
expect(resultadoTradutor).toContain(`escalamento(1.3, 0.4);`);
|
|
382
|
+
}
|
|
383
|
+
});
|
|
384
|
+
it('Atribuindo Método "scale3d()"', () => {
|
|
385
|
+
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
386
|
+
// Lexador
|
|
387
|
+
const resultadoLexador = lexador.mapear([
|
|
388
|
+
"div {",
|
|
389
|
+
`${metodos_css_1.MetodosEscalamento[index]}: scale3d(0.5, 1, 1.7);`,
|
|
390
|
+
"}"
|
|
391
|
+
]);
|
|
392
|
+
// O Lexador não deve encontrar erros
|
|
393
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
394
|
+
// O valor recebido deve ser mapeado como METODO
|
|
395
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
396
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
397
|
+
]));
|
|
398
|
+
// O Lexador deve montar um objeto de comprimento 14
|
|
399
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
400
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
401
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
402
|
+
]));
|
|
403
|
+
// Avaliador Sintático
|
|
404
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
405
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
406
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
407
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
408
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
409
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
410
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
411
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
412
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
413
|
+
// Tradutor
|
|
414
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
415
|
+
// O Tradutor deve serializar de acordo e traduzir scale3d para escalamento-3d
|
|
416
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
417
|
+
expect(resultadoTradutor).toContain(`escalamento-3d(0.5, 1, 1.7);`);
|
|
418
|
+
}
|
|
419
|
+
});
|
|
420
|
+
it('Atribuindo Método "scaleZ()"', () => {
|
|
421
|
+
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
422
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
423
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
387
424
|
// Lexador
|
|
388
425
|
const resultadoLexador = lexador.mapear([
|
|
389
426
|
"div {",
|
|
390
|
-
`${metodos_css_1.MetodosEscalamento[index]}:
|
|
427
|
+
`${metodos_css_1.MetodosEscalamento[index]}: scaleZ(${valoresAceitos[valIndex]});`,
|
|
391
428
|
"}"
|
|
392
429
|
]);
|
|
393
430
|
// O Lexador não deve encontrar erros
|
|
@@ -396,8 +433,8 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
396
433
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
397
434
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
398
435
|
]));
|
|
399
|
-
// O Lexador deve montar um objeto de comprimento
|
|
400
|
-
expect(resultadoLexador.simbolos).toHaveLength(
|
|
436
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
437
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
401
438
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
402
439
|
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
403
440
|
]));
|
|
@@ -413,147 +450,32 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
413
450
|
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
414
451
|
// Tradutor
|
|
415
452
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
416
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
453
|
+
// O Tradutor deve serializar de acordo e traduzir scaleZ para escalamento-eixo-z
|
|
417
454
|
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
418
|
-
expect(resultadoTradutor).toContain(`escalamento-
|
|
419
|
-
}
|
|
420
|
-
});
|
|
421
|
-
it('Atribuindo Método "scaleZ()"', () => {
|
|
422
|
-
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
423
|
-
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
424
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
425
|
-
// Lexador
|
|
426
|
-
const resultadoLexador = lexador.mapear([
|
|
427
|
-
"div {",
|
|
428
|
-
`${metodos_css_1.MetodosEscalamento[index]}: scaleZ(${valoresAceitos[valIndex]});`,
|
|
429
|
-
"}"
|
|
430
|
-
]);
|
|
431
|
-
// O Lexador não deve encontrar erros
|
|
432
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
433
|
-
// O valor recebido deve ser mapeado como METODO
|
|
434
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
435
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
436
|
-
]));
|
|
437
|
-
// O Lexador deve montar um objeto de comprimento 10
|
|
438
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
439
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
440
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
441
|
-
]));
|
|
442
|
-
// Avaliador Sintático
|
|
443
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
444
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
445
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
446
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
447
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
448
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
449
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
450
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
451
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
452
|
-
// Tradutor
|
|
453
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
454
|
-
// O Tradutor deve serializar de acordo e traduzir scaleZ para escalamento-eixo-z
|
|
455
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
456
|
-
expect(resultadoTradutor).toContain(`escalamento-eixo-z(${valoresAceitos[valIndex]});`);
|
|
457
|
-
}
|
|
458
|
-
}
|
|
459
|
-
});
|
|
460
|
-
it('Atribuindo Método "scaleX()"', () => {
|
|
461
|
-
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
462
|
-
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
463
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
464
|
-
// Lexador
|
|
465
|
-
const resultadoLexador = lexador.mapear([
|
|
466
|
-
"div {",
|
|
467
|
-
`${metodos_css_1.MetodosEscalamento[index]}: scaleX(${valoresAceitos[valIndex]});`,
|
|
468
|
-
"}"
|
|
469
|
-
]);
|
|
470
|
-
// O Lexador não deve encontrar erros
|
|
471
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
472
|
-
// O valor recebido deve ser mapeado como METODO
|
|
473
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
474
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
475
|
-
]));
|
|
476
|
-
// O Lexador deve montar um objeto de comprimento 10
|
|
477
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
478
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
479
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
480
|
-
]));
|
|
481
|
-
// Avaliador Sintático
|
|
482
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
483
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
484
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
485
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
486
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
487
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
488
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
489
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
490
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
491
|
-
// Tradutor
|
|
492
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
493
|
-
// O Tradutor deve serializar de acordo e traduzir scaleX para escalamento-horizontal
|
|
494
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
495
|
-
expect(resultadoTradutor).toContain(`escalamento-horizontal(${valoresAceitos[valIndex]});`);
|
|
496
|
-
}
|
|
497
|
-
}
|
|
498
|
-
});
|
|
499
|
-
it('Atribuindo Método "scaleY()"', () => {
|
|
500
|
-
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
501
|
-
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
502
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
503
|
-
// Lexador
|
|
504
|
-
const resultadoLexador = lexador.mapear([
|
|
505
|
-
"div {",
|
|
506
|
-
`${metodos_css_1.MetodosEscalamento[index]}: scaleY(${valoresAceitos[valIndex]});`,
|
|
507
|
-
"}"
|
|
508
|
-
]);
|
|
509
|
-
// O Lexador não deve encontrar erros
|
|
510
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
511
|
-
// O valor recebido deve ser mapeado como METODO
|
|
512
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
513
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
514
|
-
]));
|
|
515
|
-
// O Lexador deve montar um objeto de comprimento 10
|
|
516
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
517
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
518
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
519
|
-
]));
|
|
520
|
-
// Avaliador Sintático
|
|
521
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
522
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
523
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
524
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
525
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
526
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
527
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
528
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
529
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
530
|
-
// Tradutor
|
|
531
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
532
|
-
// O Tradutor deve serializar de acordo e traduzir scaleY para escalamento-vertical
|
|
533
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
534
|
-
expect(resultadoTradutor).toContain(`escalamento-vertical(${valoresAceitos[valIndex]});`);
|
|
535
|
-
}
|
|
455
|
+
expect(resultadoTradutor).toContain(`escalamento-eixo-z(${valoresAceitos[valIndex]});`);
|
|
536
456
|
}
|
|
537
|
-
}
|
|
538
|
-
|
|
539
|
-
|
|
457
|
+
}
|
|
458
|
+
});
|
|
459
|
+
it('Atribuindo Método "scaleX()"', () => {
|
|
460
|
+
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
461
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
462
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
540
463
|
// Lexador
|
|
541
464
|
const resultadoLexador = lexador.mapear([
|
|
542
465
|
"div {",
|
|
543
|
-
`${metodos_css_1.
|
|
466
|
+
`${metodos_css_1.MetodosEscalamento[index]}: scaleX(${valoresAceitos[valIndex]});`,
|
|
544
467
|
"}"
|
|
545
468
|
]);
|
|
546
|
-
// O Lexador deve
|
|
547
|
-
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
469
|
+
// O Lexador não deve encontrar erros
|
|
548
470
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
549
471
|
// O valor recebido deve ser mapeado como METODO
|
|
550
472
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
551
473
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
552
474
|
]));
|
|
553
|
-
// O Lexador
|
|
475
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
476
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
554
477
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
555
478
|
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
556
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
557
479
|
]));
|
|
558
480
|
// Avaliador Sintático
|
|
559
481
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
@@ -563,67 +485,24 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
563
485
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
564
486
|
const primeiroResultadoTipado = primeiroResultado;
|
|
565
487
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
566
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
488
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
489
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
567
490
|
// Tradutor
|
|
568
491
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
569
|
-
|
|
570
|
-
expect(resultadoTradutor).toContain(
|
|
571
|
-
|
|
572
|
-
});
|
|
573
|
-
it('Atribuindo Método "skew()"', () => {
|
|
574
|
-
for (let index = 0; index < metodos_css_1.MetodosInclinar.length; index += 1) {
|
|
575
|
-
const valoresAceitos = ['18deg', '3.142rad', '0', '1'];
|
|
576
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
577
|
-
// Lexador
|
|
578
|
-
const resultadoLexador = lexador.mapear([
|
|
579
|
-
"div {",
|
|
580
|
-
`${metodos_css_1.MetodosInclinar[index]}: skew(${valoresAceitos[valIndex]});`,
|
|
581
|
-
"}"
|
|
582
|
-
]);
|
|
583
|
-
// O Lexador não deve encontrar erros
|
|
584
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
585
|
-
// O valor recebido deve ser mapeado como METODO
|
|
586
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
587
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
588
|
-
]));
|
|
589
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
590
|
-
if (valIndex <= 1) {
|
|
591
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
592
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
593
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
594
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
595
|
-
]));
|
|
596
|
-
}
|
|
597
|
-
else {
|
|
598
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
599
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
600
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
601
|
-
]));
|
|
602
|
-
}
|
|
603
|
-
// Avaliador Sintático
|
|
604
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
605
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
606
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
607
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
608
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
609
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
610
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
611
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
612
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
613
|
-
// Tradutor
|
|
614
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
615
|
-
// O Tradutor deve serializar de acordo e traduzir skew para inclinar
|
|
616
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
617
|
-
expect(resultadoTradutor).toContain(`inclinar(${valoresAceitos[valIndex]});`);
|
|
618
|
-
}
|
|
492
|
+
// O Tradutor deve serializar de acordo e traduzir scaleX para escalamento-horizontal
|
|
493
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
494
|
+
expect(resultadoTradutor).toContain(`escalamento-horizontal(${valoresAceitos[valIndex]});`);
|
|
619
495
|
}
|
|
620
|
-
}
|
|
621
|
-
|
|
622
|
-
|
|
496
|
+
}
|
|
497
|
+
});
|
|
498
|
+
it('Atribuindo Método "scaleY()"', () => {
|
|
499
|
+
for (let index = 0; index < metodos_css_1.MetodosEscalamento.length; index += 1) {
|
|
500
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
501
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
623
502
|
// Lexador
|
|
624
503
|
const resultadoLexador = lexador.mapear([
|
|
625
504
|
"div {",
|
|
626
|
-
`${metodos_css_1.
|
|
505
|
+
`${metodos_css_1.MetodosEscalamento[index]}: scaleY(${valoresAceitos[valIndex]});`,
|
|
627
506
|
"}"
|
|
628
507
|
]);
|
|
629
508
|
// O Lexador não deve encontrar erros
|
|
@@ -632,11 +511,10 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
632
511
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
633
512
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
634
513
|
]));
|
|
635
|
-
// O Lexador deve montar um objeto de comprimento
|
|
636
|
-
expect(resultadoLexador.simbolos).toHaveLength(
|
|
514
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
515
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
637
516
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
638
517
|
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
639
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
640
518
|
]));
|
|
641
519
|
// Avaliador Sintático
|
|
642
520
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
@@ -646,177 +524,81 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
646
524
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
647
525
|
const primeiroResultadoTipado = primeiroResultado;
|
|
648
526
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
649
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
650
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.
|
|
527
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosEscalamento[index]);
|
|
528
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
651
529
|
// Tradutor
|
|
652
530
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
653
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
654
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.
|
|
655
|
-
expect(resultadoTradutor).toContain(`
|
|
656
|
-
}
|
|
657
|
-
});
|
|
658
|
-
it('Atribuindo Método "skewX()"', () => {
|
|
659
|
-
for (let index = 0; index < metodos_css_1.MetodosInclinar.length; index += 1) {
|
|
660
|
-
const valoresAceitos = ['180deg', '3.142rad', '0', '1'];
|
|
661
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
662
|
-
// Lexador
|
|
663
|
-
const resultadoLexador = lexador.mapear([
|
|
664
|
-
"div {",
|
|
665
|
-
`${metodos_css_1.MetodosInclinar[index]}: skewX(${valoresAceitos[valIndex]});`,
|
|
666
|
-
"}"
|
|
667
|
-
]);
|
|
668
|
-
// O Lexador não deve encontrar erros
|
|
669
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
670
|
-
// O valor recebido deve ser mapeado como METODO
|
|
671
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
672
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
673
|
-
]));
|
|
674
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
675
|
-
if (valIndex <= 1) {
|
|
676
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
677
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
678
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
679
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
680
|
-
]));
|
|
681
|
-
}
|
|
682
|
-
else {
|
|
683
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
684
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
685
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
686
|
-
]));
|
|
687
|
-
}
|
|
688
|
-
// Avaliador Sintático
|
|
689
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
690
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
691
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
692
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
693
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
694
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
695
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
696
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
697
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
698
|
-
// Tradutor
|
|
699
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
700
|
-
// O Tradutor deve serializar de acordo e traduzir skewX para inclinar-horizontal
|
|
701
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
702
|
-
}
|
|
703
|
-
}
|
|
704
|
-
});
|
|
705
|
-
it('Atribuindo Método "skewY()"', () => {
|
|
706
|
-
for (let index = 0; index < metodos_css_1.MetodosInclinar.length; index += 1) {
|
|
707
|
-
const valoresAceitos = ['180deg', '3.142rad', '0', '1'];
|
|
708
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
709
|
-
// Lexador
|
|
710
|
-
const resultadoLexador = lexador.mapear([
|
|
711
|
-
"div {",
|
|
712
|
-
`${metodos_css_1.MetodosInclinar[index]}: skewY(${valoresAceitos[valIndex]});`,
|
|
713
|
-
"}"
|
|
714
|
-
]);
|
|
715
|
-
// O Lexador não deve encontrar erros
|
|
716
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
717
|
-
// O valor recebido deve ser mapeado como METODO
|
|
718
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
719
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
720
|
-
]));
|
|
721
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
722
|
-
if (valIndex <= 1) {
|
|
723
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
724
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
725
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
726
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
727
|
-
]));
|
|
728
|
-
}
|
|
729
|
-
else {
|
|
730
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
731
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
732
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
733
|
-
]));
|
|
734
|
-
}
|
|
735
|
-
// Avaliador Sintático
|
|
736
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
737
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
738
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
739
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
740
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
741
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
742
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
743
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
744
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
745
|
-
// Tradutor
|
|
746
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
747
|
-
// O Tradutor deve serializar de acordo e traduzir skewY para inclinar-vertical
|
|
748
|
-
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
749
|
-
expect(resultadoTradutor).toContain(`inclinar-vertical(${valoresAceitos[valIndex]});`);
|
|
750
|
-
}
|
|
751
|
-
}
|
|
752
|
-
});
|
|
753
|
-
it('Atribuindo Método "invert()"', () => {
|
|
754
|
-
for (let index = 0; index < metodos_css_1.MetodoInverter.length; index += 1) {
|
|
755
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
756
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
757
|
-
// Lexador
|
|
758
|
-
const resultadoLexador = lexador.mapear([
|
|
759
|
-
"div {",
|
|
760
|
-
`${metodos_css_1.MetodoInverter[index]}: invert(${valoresAceitos[valIndex]});`,
|
|
761
|
-
"}"
|
|
762
|
-
]);
|
|
763
|
-
// O Lexador não deve encontrar erros
|
|
764
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
765
|
-
// O valor recebido deve ser mapeado como METODO
|
|
766
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
767
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
768
|
-
]));
|
|
769
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
770
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
771
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
772
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
773
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
774
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
775
|
-
]));
|
|
776
|
-
}
|
|
777
|
-
else {
|
|
778
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
779
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
780
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
781
|
-
]));
|
|
782
|
-
}
|
|
783
|
-
// Avaliador Sintático
|
|
784
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
785
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
786
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
787
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
788
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
789
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
790
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
791
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoInverter[index]);
|
|
792
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoInverter[index]]);
|
|
793
|
-
// Tradutor
|
|
794
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
795
|
-
// O Tradutor deve serializar de acordo e traduzir invert para inverter
|
|
796
|
-
expect(resultadoTradutor).toContain(`inverter(${valoresAceitos[valIndex]});`);
|
|
797
|
-
}
|
|
531
|
+
// O Tradutor deve serializar de acordo e traduzir scaleY para escalamento-vertical
|
|
532
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosEscalamento[index]]);
|
|
533
|
+
expect(resultadoTradutor).toContain(`escalamento-vertical(${valoresAceitos[valIndex]});`);
|
|
798
534
|
}
|
|
799
|
-
}
|
|
800
|
-
|
|
801
|
-
|
|
535
|
+
}
|
|
536
|
+
});
|
|
537
|
+
it('Atribuindo Método "linear-gradient()" com valor de ângulo deg', () => {
|
|
538
|
+
for (let index = 0; index < metodos_css_1.MetodoGradienteLinear.length; index += 1) {
|
|
539
|
+
// Lexador
|
|
540
|
+
const resultadoLexador = lexador.mapear([
|
|
541
|
+
"div {",
|
|
542
|
+
`${metodos_css_1.MetodoGradienteLinear[index]}: linear-gradient(90deg, green, yellow);`,
|
|
543
|
+
"}"
|
|
544
|
+
]);
|
|
545
|
+
// O Lexador deve montar um objeto de comprimento 15 sem retornar nenhum erro
|
|
546
|
+
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
547
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
548
|
+
// O valor recebido deve ser mapeado como METODO
|
|
549
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
550
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
551
|
+
]));
|
|
552
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
553
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
554
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
555
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
556
|
+
]));
|
|
557
|
+
// Avaliador Sintático
|
|
558
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
559
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
560
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
561
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
562
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
563
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
564
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
565
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoGradienteLinear[index]);
|
|
566
|
+
// Tradutor
|
|
567
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
568
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoGradienteLinear[index]]);
|
|
569
|
+
expect(resultadoTradutor).toContain('gradiente-linear(90deg, verde, amarelo);');
|
|
570
|
+
}
|
|
571
|
+
});
|
|
572
|
+
it('Atribuindo Método "skew()"', () => {
|
|
573
|
+
for (let index = 0; index < metodos_css_1.MetodosInclinar.length; index += 1) {
|
|
574
|
+
const valoresAceitos = ['18deg', '3.142rad', '0', '1'];
|
|
575
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
802
576
|
// Lexador
|
|
803
577
|
const resultadoLexador = lexador.mapear([
|
|
804
578
|
"div {",
|
|
805
|
-
`${metodos_css_1.
|
|
579
|
+
`${metodos_css_1.MetodosInclinar[index]}: skew(${valoresAceitos[valIndex]});`,
|
|
806
580
|
"}"
|
|
807
581
|
]);
|
|
808
|
-
// O Lexador deve
|
|
809
|
-
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
582
|
+
// O Lexador não deve encontrar erros
|
|
810
583
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
811
584
|
// O valor recebido deve ser mapeado como METODO
|
|
812
585
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
813
586
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
814
587
|
]));
|
|
815
|
-
// O Lexador
|
|
816
|
-
|
|
817
|
-
expect
|
|
818
|
-
expect.
|
|
819
|
-
|
|
588
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
589
|
+
if (valIndex <= 1) {
|
|
590
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
591
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
592
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
593
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
594
|
+
]));
|
|
595
|
+
}
|
|
596
|
+
else {
|
|
597
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
598
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
599
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
600
|
+
]));
|
|
601
|
+
}
|
|
820
602
|
// Avaliador Sintático
|
|
821
603
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
822
604
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -825,33 +607,83 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
825
607
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
826
608
|
const primeiroResultadoTipado = primeiroResultado;
|
|
827
609
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
828
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
829
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.
|
|
610
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
611
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
830
612
|
// Tradutor
|
|
831
613
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
832
|
-
|
|
833
|
-
expect(resultadoTradutor).toContain(
|
|
614
|
+
// O Tradutor deve serializar de acordo e traduzir skew para inclinar
|
|
615
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
616
|
+
expect(resultadoTradutor).toContain(`inclinar(${valoresAceitos[valIndex]});`);
|
|
834
617
|
}
|
|
835
|
-
}
|
|
836
|
-
|
|
837
|
-
|
|
618
|
+
}
|
|
619
|
+
});
|
|
620
|
+
it('Atribuindo Método "skew() com múltiplos valores"', () => {
|
|
621
|
+
for (let index = 0; index < metodos_css_1.MetodosInclinar.length; index += 1) {
|
|
622
|
+
// Lexador
|
|
623
|
+
const resultadoLexador = lexador.mapear([
|
|
624
|
+
"div {",
|
|
625
|
+
`${metodos_css_1.MetodosInclinar[index]}: skew(15deg, 15deg);`,
|
|
626
|
+
"}"
|
|
627
|
+
]);
|
|
628
|
+
// O Lexador não deve encontrar erros
|
|
629
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
630
|
+
// O valor recebido deve ser mapeado como METODO
|
|
631
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
632
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
633
|
+
]));
|
|
634
|
+
// O Lexador deve montar um objeto de comprimento 14
|
|
635
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
636
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
637
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
638
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
639
|
+
]));
|
|
640
|
+
// Avaliador Sintático
|
|
641
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
642
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
643
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
644
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
645
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
646
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
647
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
648
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
649
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
650
|
+
// Tradutor
|
|
651
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
652
|
+
// O Tradutor deve serializar de acordo e traduzir skew para inclinar
|
|
653
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
654
|
+
expect(resultadoTradutor).toContain(`inclinar(15deg, 15deg);`);
|
|
655
|
+
}
|
|
656
|
+
});
|
|
657
|
+
it('Atribuindo Método "skewX()"', () => {
|
|
658
|
+
for (let index = 0; index < metodos_css_1.MetodosInclinar.length; index += 1) {
|
|
659
|
+
const valoresAceitos = ['180deg', '3.142rad', '0', '1'];
|
|
660
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
838
661
|
// Lexador
|
|
839
662
|
const resultadoLexador = lexador.mapear([
|
|
840
663
|
"div {",
|
|
841
|
-
`${metodos_css_1.
|
|
664
|
+
`${metodos_css_1.MetodosInclinar[index]}: skewX(${valoresAceitos[valIndex]});`,
|
|
842
665
|
"}"
|
|
843
666
|
]);
|
|
844
|
-
// O Lexador deve
|
|
845
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
667
|
+
// O Lexador não deve encontrar erros
|
|
846
668
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
847
669
|
// O valor recebido deve ser mapeado como METODO
|
|
848
670
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
849
671
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
850
672
|
]));
|
|
851
|
-
// O Lexador
|
|
852
|
-
|
|
853
|
-
expect
|
|
854
|
-
|
|
673
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
674
|
+
if (valIndex <= 1) {
|
|
675
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
676
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
677
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
678
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
679
|
+
]));
|
|
680
|
+
}
|
|
681
|
+
else {
|
|
682
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
683
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
684
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
685
|
+
]));
|
|
686
|
+
}
|
|
855
687
|
// Avaliador Sintático
|
|
856
688
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
857
689
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -860,33 +692,45 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
860
692
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
861
693
|
const primeiroResultadoTipado = primeiroResultado;
|
|
862
694
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
863
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
695
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
696
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
864
697
|
// Tradutor
|
|
865
698
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
866
|
-
|
|
867
|
-
expect(resultadoTradutor).toContain(
|
|
699
|
+
// O Tradutor deve serializar de acordo e traduzir skewX para inclinar-horizontal
|
|
700
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
868
701
|
}
|
|
869
|
-
}
|
|
870
|
-
|
|
871
|
-
|
|
702
|
+
}
|
|
703
|
+
});
|
|
704
|
+
it('Atribuindo Método "skewY()"', () => {
|
|
705
|
+
for (let index = 0; index < metodos_css_1.MetodosInclinar.length; index += 1) {
|
|
706
|
+
const valoresAceitos = ['180deg', '3.142rad', '0', '1'];
|
|
707
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
872
708
|
// Lexador
|
|
873
709
|
const resultadoLexador = lexador.mapear([
|
|
874
710
|
"div {",
|
|
875
|
-
`${metodos_css_1.
|
|
711
|
+
`${metodos_css_1.MetodosInclinar[index]}: skewY(${valoresAceitos[valIndex]});`,
|
|
876
712
|
"}"
|
|
877
713
|
]);
|
|
878
|
-
// O Lexador deve
|
|
879
|
-
expect(resultadoLexador.simbolos).toHaveLength(13);
|
|
714
|
+
// O Lexador não deve encontrar erros
|
|
880
715
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
881
716
|
// O valor recebido deve ser mapeado como METODO
|
|
882
717
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
883
718
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
884
719
|
]));
|
|
885
|
-
// O Lexador
|
|
886
|
-
|
|
887
|
-
expect
|
|
888
|
-
expect.
|
|
889
|
-
|
|
720
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
721
|
+
if (valIndex <= 1) {
|
|
722
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
723
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
724
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
725
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
726
|
+
]));
|
|
727
|
+
}
|
|
728
|
+
else {
|
|
729
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
730
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
731
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
732
|
+
]));
|
|
733
|
+
}
|
|
890
734
|
// Avaliador Sintático
|
|
891
735
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
892
736
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -895,34 +739,46 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
895
739
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
896
740
|
const primeiroResultadoTipado = primeiroResultado;
|
|
897
741
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
898
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
899
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.
|
|
742
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosInclinar[index]);
|
|
743
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
900
744
|
// Tradutor
|
|
901
745
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
902
|
-
|
|
903
|
-
expect(resultadoTradutor).toContain(
|
|
746
|
+
// O Tradutor deve serializar de acordo e traduzir skewY para inclinar-vertical
|
|
747
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosInclinar[index]]);
|
|
748
|
+
expect(resultadoTradutor).toContain(`inclinar-vertical(${valoresAceitos[valIndex]});`);
|
|
904
749
|
}
|
|
905
|
-
}
|
|
906
|
-
|
|
907
|
-
|
|
750
|
+
}
|
|
751
|
+
});
|
|
752
|
+
it('Atribuindo Método "invert()"', () => {
|
|
753
|
+
for (let index = 0; index < metodos_css_1.MetodoInverter.length; index += 1) {
|
|
754
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
755
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
908
756
|
// Lexador
|
|
909
757
|
const resultadoLexador = lexador.mapear([
|
|
910
758
|
"div {",
|
|
911
|
-
`${metodos_css_1.
|
|
759
|
+
`${metodos_css_1.MetodoInverter[index]}: invert(${valoresAceitos[valIndex]});`,
|
|
912
760
|
"}"
|
|
913
761
|
]);
|
|
914
|
-
// O Lexador deve
|
|
915
|
-
expect(resultadoLexador.simbolos).toHaveLength(13);
|
|
762
|
+
// O Lexador não deve encontrar erros
|
|
916
763
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
917
764
|
// O valor recebido deve ser mapeado como METODO
|
|
918
765
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
919
766
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
920
767
|
]));
|
|
921
|
-
// O Lexador
|
|
922
|
-
|
|
923
|
-
expect
|
|
924
|
-
expect.
|
|
925
|
-
|
|
768
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
769
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
770
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
771
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
772
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
773
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
774
|
+
]));
|
|
775
|
+
}
|
|
776
|
+
else {
|
|
777
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
778
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
779
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
780
|
+
]));
|
|
781
|
+
}
|
|
926
782
|
// Avaliador Sintático
|
|
927
783
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
928
784
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -931,129 +787,187 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
931
787
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
932
788
|
const primeiroResultadoTipado = primeiroResultado;
|
|
933
789
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
934
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
935
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.
|
|
790
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoInverter[index]);
|
|
791
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoInverter[index]]);
|
|
936
792
|
// Tradutor
|
|
937
793
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
938
|
-
|
|
939
|
-
expect(resultadoTradutor).toContain(
|
|
940
|
-
}
|
|
941
|
-
});
|
|
942
|
-
it('Atribuindo Método "opacity()"', () => {
|
|
943
|
-
for (let index = 0; index < metodos_css_1.MetodoOpacar.length; index += 1) {
|
|
944
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
945
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
946
|
-
// Lexador
|
|
947
|
-
const resultadoLexador = lexador.mapear([
|
|
948
|
-
"div {",
|
|
949
|
-
`${metodos_css_1.MetodoOpacar[index]}: opacity(${valoresAceitos[valIndex]});`,
|
|
950
|
-
"}"
|
|
951
|
-
]);
|
|
952
|
-
// O Lexador não deve encontrar erros
|
|
953
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
954
|
-
// O valor recebido deve ser mapeado como METODO
|
|
955
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
956
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
957
|
-
]));
|
|
958
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
959
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
960
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
961
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
962
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
963
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
964
|
-
]));
|
|
965
|
-
}
|
|
966
|
-
else {
|
|
967
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
968
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
969
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
970
|
-
]));
|
|
971
|
-
}
|
|
972
|
-
// Avaliador Sintático
|
|
973
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
974
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
975
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
976
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
977
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
978
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
979
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
980
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoOpacar[index]);
|
|
981
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoOpacar[index]]);
|
|
982
|
-
// Tradutor
|
|
983
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
984
|
-
// O Tradutor deve serializar de acordo e traduzir opacity para opacar
|
|
985
|
-
expect(resultadoTradutor).toContain(`opacar(${valoresAceitos[valIndex]});`);
|
|
986
|
-
}
|
|
987
|
-
}
|
|
988
|
-
});
|
|
989
|
-
it('Atribuindo Método "perspective()"', () => {
|
|
990
|
-
for (let index = 0; index < metodos_css_1.MetodoPerspectivar.length; index += 1) {
|
|
991
|
-
const valoresAceitos = ['800px', '6.5cm', '0.1', '0', '1', '1.75'];
|
|
992
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
993
|
-
// Lexador
|
|
994
|
-
const resultadoLexador = lexador.mapear([
|
|
995
|
-
"div {",
|
|
996
|
-
`${metodos_css_1.MetodoPerspectivar[index]}: perspective(${valoresAceitos[valIndex]});`,
|
|
997
|
-
"}"
|
|
998
|
-
]);
|
|
999
|
-
// O Lexador não deve encontrar erros
|
|
1000
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1001
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1002
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1003
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1004
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1005
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1006
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1007
|
-
]));
|
|
1008
|
-
}
|
|
1009
|
-
else if (valIndex !== 6) {
|
|
1010
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1011
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1012
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1013
|
-
]));
|
|
1014
|
-
}
|
|
1015
|
-
else {
|
|
1016
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1017
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1018
|
-
expect.objectContaining({ tipo: css_1.default.IDENTIFICADOR }),
|
|
1019
|
-
]));
|
|
1020
|
-
}
|
|
1021
|
-
// Avaliador Sintático
|
|
1022
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1023
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1024
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1025
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1026
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1027
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1028
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1029
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoPerspectivar[index]);
|
|
1030
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoPerspectivar[index]]);
|
|
1031
|
-
// Tradutor
|
|
1032
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1033
|
-
// O Tradutor deve serializar de acordo e traduzir perspective para perspectivar
|
|
1034
|
-
expect(resultadoTradutor).toContain(`perspectivar(${valoresAceitos[valIndex]});`);
|
|
1035
|
-
}
|
|
794
|
+
// O Tradutor deve serializar de acordo e traduzir invert para inverter
|
|
795
|
+
expect(resultadoTradutor).toContain(`inverter(${valoresAceitos[valIndex]});`);
|
|
1036
796
|
}
|
|
1037
|
-
}
|
|
1038
|
-
|
|
1039
|
-
|
|
797
|
+
}
|
|
798
|
+
});
|
|
799
|
+
it('Atribuindo Método "clamp()"', () => {
|
|
800
|
+
for (let index = 0; index < metodos_css_1.MetodoLimitar.length; index += 1) {
|
|
801
|
+
// Lexador
|
|
802
|
+
const resultadoLexador = lexador.mapear([
|
|
803
|
+
"div {",
|
|
804
|
+
`${metodos_css_1.MetodoLimitar[index]}: clamp(10vw, 20em, 100vw);`,
|
|
805
|
+
"}"
|
|
806
|
+
]);
|
|
807
|
+
// O Lexador deve montar um objeto de comprimento 17 sem retornar nenhum erro
|
|
808
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
809
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
810
|
+
// O valor recebido deve ser mapeado como METODO
|
|
811
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
812
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
813
|
+
]));
|
|
814
|
+
// O Lexador também deve encontrar números e quantificadores no mapeamento
|
|
815
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
816
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
817
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
818
|
+
]));
|
|
819
|
+
// Avaliador Sintático
|
|
820
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
821
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
822
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
823
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
824
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
825
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
826
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
827
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoLimitar[index]);
|
|
828
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoLimitar[index]]);
|
|
829
|
+
// Tradutor
|
|
830
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
831
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoLimitar[index]]);
|
|
832
|
+
expect(resultadoTradutor).toContain('limitar(10vw, 20em, 100vw);');
|
|
833
|
+
}
|
|
834
|
+
});
|
|
835
|
+
it('Atribuindo Método "linear()"', () => {
|
|
836
|
+
for (let index = 0; index < metodos_css_1.MetodoLinear.length; index += 1) {
|
|
837
|
+
// Lexador
|
|
838
|
+
const resultadoLexador = lexador.mapear([
|
|
839
|
+
"div {",
|
|
840
|
+
`${metodos_css_1.MetodoLinear[index]}: linear(0, 0.25, 1);`,
|
|
841
|
+
"}"
|
|
842
|
+
]);
|
|
843
|
+
// O Lexador deve montar um objeto de comprimento 14 sem retornar nenhum erro
|
|
844
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
845
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
846
|
+
// O valor recebido deve ser mapeado como METODO
|
|
847
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
848
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
849
|
+
]));
|
|
850
|
+
// O Lexador também deve encontrar números no mapeamento
|
|
851
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
852
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
853
|
+
]));
|
|
854
|
+
// Avaliador Sintático
|
|
855
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
856
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
857
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
858
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
859
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
860
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
861
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
862
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoLinear[index]);
|
|
863
|
+
// Tradutor
|
|
864
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
865
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoLinear[index]]);
|
|
866
|
+
expect(resultadoTradutor).toContain('linear(0, 0.25, 1);');
|
|
867
|
+
}
|
|
868
|
+
});
|
|
869
|
+
it('Atribuindo Método "minmax()" com valor máximo', () => {
|
|
870
|
+
for (let index = 0; index < metodos_css_1.MetodoMinMax.length; index += 1) {
|
|
871
|
+
// Lexador
|
|
872
|
+
const resultadoLexador = lexador.mapear([
|
|
873
|
+
"div {",
|
|
874
|
+
`${metodos_css_1.MetodoMinMax[index]}: minmax(100px, max-content);`,
|
|
875
|
+
"}"
|
|
876
|
+
]);
|
|
877
|
+
// O Lexador deve montar um objeto de comprimento 13 sem retornar nenhum erro
|
|
878
|
+
expect(resultadoLexador.simbolos).toHaveLength(13);
|
|
879
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
880
|
+
// O valor recebido deve ser mapeado como METODO
|
|
881
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
882
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
883
|
+
]));
|
|
884
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
885
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
886
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
887
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
888
|
+
]));
|
|
889
|
+
// Avaliador Sintático
|
|
890
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
891
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
892
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
893
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
894
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
895
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
896
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
897
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoMinMax[index]);
|
|
898
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoMinMax[index]]);
|
|
899
|
+
// Tradutor
|
|
900
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
901
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoMinMax[index]]);
|
|
902
|
+
expect(resultadoTradutor).toContain('minmax(100px, conteudo-máximo);');
|
|
903
|
+
}
|
|
904
|
+
});
|
|
905
|
+
it('Atribuindo Método "minmax()" com valor mínimo', () => {
|
|
906
|
+
for (let index = 0; index < metodos_css_1.MetodoMinMax.length; index += 1) {
|
|
907
|
+
// Lexador
|
|
908
|
+
const resultadoLexador = lexador.mapear([
|
|
909
|
+
"div {",
|
|
910
|
+
`${metodos_css_1.MetodoMinMax[index]}: minmax(min-content, 100px);`,
|
|
911
|
+
"}"
|
|
912
|
+
]);
|
|
913
|
+
// O Lexador deve montar um objeto de comprimento 13 sem retornar nenhum erro
|
|
914
|
+
expect(resultadoLexador.simbolos).toHaveLength(13);
|
|
915
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
916
|
+
// O valor recebido deve ser mapeado como METODO
|
|
917
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
918
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
919
|
+
]));
|
|
920
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
921
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
922
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
923
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
924
|
+
]));
|
|
925
|
+
// Avaliador Sintático
|
|
926
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
927
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
928
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
929
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
930
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
931
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
932
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
933
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoMinMax[index]);
|
|
934
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoMinMax[index]]);
|
|
935
|
+
// Tradutor
|
|
936
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
937
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoMinMax[index]]);
|
|
938
|
+
expect(resultadoTradutor).toContain('minmax(conteudo-mínimo, 100px);');
|
|
939
|
+
}
|
|
940
|
+
});
|
|
941
|
+
it('Atribuindo Método "opacity()"', () => {
|
|
942
|
+
for (let index = 0; index < metodos_css_1.MetodoOpacar.length; index += 1) {
|
|
943
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
944
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1040
945
|
// Lexador
|
|
1041
946
|
const resultadoLexador = lexador.mapear([
|
|
1042
947
|
"div {",
|
|
1043
|
-
`${metodos_css_1.
|
|
948
|
+
`${metodos_css_1.MetodoOpacar[index]}: opacity(${valoresAceitos[valIndex]});`,
|
|
1044
949
|
"}"
|
|
1045
950
|
]);
|
|
1046
|
-
// O Lexador deve
|
|
1047
|
-
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
951
|
+
// O Lexador não deve encontrar erros
|
|
1048
952
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1049
953
|
// O valor recebido deve ser mapeado como METODO
|
|
1050
954
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1051
955
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1052
956
|
]));
|
|
1053
|
-
// O Lexador
|
|
1054
|
-
|
|
1055
|
-
expect
|
|
1056
|
-
|
|
957
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
958
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
959
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
960
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
961
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
962
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
963
|
+
]));
|
|
964
|
+
}
|
|
965
|
+
else {
|
|
966
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
967
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
968
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
969
|
+
]));
|
|
970
|
+
}
|
|
1057
971
|
// Avaliador Sintático
|
|
1058
972
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1059
973
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -1062,140 +976,188 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1062
976
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1063
977
|
const primeiroResultadoTipado = primeiroResultado;
|
|
1064
978
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1065
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
1066
|
-
|
|
979
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoOpacar[index]);
|
|
980
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoOpacar[index]]);
|
|
981
|
+
// Tradutor
|
|
1067
982
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1068
|
-
|
|
1069
|
-
expect(resultadoTradutor).toContain(
|
|
983
|
+
// O Tradutor deve serializar de acordo e traduzir opacity para opacar
|
|
984
|
+
expect(resultadoTradutor).toContain(`opacar(${valoresAceitos[valIndex]});`);
|
|
1070
985
|
}
|
|
1071
|
-
}
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
|
|
1088
|
-
// O Lexador também deve sempre encontrar valores e quantificadores na operação
|
|
1089
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1090
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1091
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1092
|
-
]));
|
|
1093
|
-
// Avaliador Sintático
|
|
1094
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1095
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1096
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1097
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1098
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1099
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1100
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1101
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoProjetarSombra[index]);
|
|
1102
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoProjetarSombra[index]]);
|
|
1103
|
-
// Tradutor
|
|
1104
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1105
|
-
// O Tradutor deve serializar de acordo e traduzir drop-shadow para projetar-sombra
|
|
1106
|
-
expect(resultadoTradutor).toContain(`projetar-sombra(${comprimentos[posIndex]});`);
|
|
1107
|
-
}
|
|
1108
|
-
}
|
|
1109
|
-
});
|
|
1110
|
-
it('Atribuindo Método "drop-shadow()" com valores de cor e de comprimento', () => {
|
|
1111
|
-
for (let index = 0; index < metodos_css_1.MetodoProjetarSombra.length; index += 1) {
|
|
1112
|
-
const comprimentos = [
|
|
1113
|
-
'15px 15px red',
|
|
1114
|
-
'15px 15px 15px red',
|
|
1115
|
-
'red 0.5rem 0.5rem',
|
|
1116
|
-
'red 0.5rem 0.5rem 1rem',
|
|
1117
|
-
];
|
|
1118
|
-
for (let posIndex = 0; posIndex < comprimentos.length; posIndex += 1) {
|
|
1119
|
-
// Lexador
|
|
1120
|
-
const resultadoLexador = lexador.mapear([
|
|
1121
|
-
"div {",
|
|
1122
|
-
`${metodos_css_1.MetodoProjetarSombra[index]}: drop-shadow(${comprimentos[posIndex]});`,
|
|
1123
|
-
"}"
|
|
1124
|
-
]);
|
|
1125
|
-
// O Lexador deve montar um objeto de acordo, sem retornar nenhum erro
|
|
1126
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1127
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1128
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1129
|
-
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1130
|
-
]));
|
|
1131
|
-
// O Lexador também deve sempre encontrar valores e quantificadores na operação
|
|
986
|
+
}
|
|
987
|
+
});
|
|
988
|
+
it('Atribuindo Método "perspective()"', () => {
|
|
989
|
+
for (let index = 0; index < metodos_css_1.MetodoPerspectivar.length; index += 1) {
|
|
990
|
+
const valoresAceitos = ['800px', '6.5cm', '0.1', '0', '1', '1.75'];
|
|
991
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
992
|
+
// Lexador
|
|
993
|
+
const resultadoLexador = lexador.mapear([
|
|
994
|
+
"div {",
|
|
995
|
+
`${metodos_css_1.MetodoPerspectivar[index]}: perspective(${valoresAceitos[valIndex]});`,
|
|
996
|
+
"}"
|
|
997
|
+
]);
|
|
998
|
+
// O Lexador não deve encontrar erros
|
|
999
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1000
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1001
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1002
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1132
1003
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1133
1004
|
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1134
1005
|
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1135
1006
|
]));
|
|
1136
|
-
// Avaliador Sintático
|
|
1137
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1138
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1139
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1140
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1141
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1142
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1143
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1144
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoProjetarSombra[index]);
|
|
1145
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoProjetarSombra[index]]);
|
|
1146
|
-
// Tradutor
|
|
1147
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1148
|
-
// O Tradutor deve serializar de acordo e traduzir red para vermelho
|
|
1149
|
-
expect(resultadoTradutor).toContain('vermelho');
|
|
1150
1007
|
}
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
it('Atribuindo Método "ray()" com valores de posição e número/quantificador', () => {
|
|
1154
|
-
for (let index = 0; index < metodos_css_1.MetodoRaio.length; index += 1) {
|
|
1155
|
-
const valoresAceitos = ['closest-side', 'closest-corner', 'farthest-side', 'farthest-corner', 'sides', 'contain'];
|
|
1156
|
-
const traducaoValoresAceitos = ['lado-mais-próximo', 'canto-mais-próximo', 'lado-mais-distante', 'canto-mais-distante', 'lados', 'conter'];
|
|
1157
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1158
|
-
// Lexador
|
|
1159
|
-
const resultadoLexador = lexador.mapear([
|
|
1160
|
-
"div {",
|
|
1161
|
-
`${metodos_css_1.MetodoRaio[index]}: ray(${valoresAceitos[valIndex]} 200deg);`,
|
|
1162
|
-
"}"
|
|
1163
|
-
]);
|
|
1164
|
-
// O Lexador não deve encontrar erros
|
|
1165
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1166
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1008
|
+
else if (valIndex !== 6) {
|
|
1009
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1167
1010
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1168
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1011
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1169
1012
|
]));
|
|
1170
|
-
|
|
1171
|
-
|
|
1013
|
+
}
|
|
1014
|
+
else {
|
|
1015
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1172
1016
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1173
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1174
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1017
|
+
expect.objectContaining({ tipo: css_1.default.IDENTIFICADOR }),
|
|
1175
1018
|
]));
|
|
1176
|
-
// Avaliador Sintático
|
|
1177
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1178
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1179
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1180
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1181
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1182
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1183
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1184
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoRaio[index]);
|
|
1185
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoRaio[index]]);
|
|
1186
|
-
// Tradutor
|
|
1187
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1188
|
-
// O Tradutor deve serializar de acordo e traduzir ray para raio
|
|
1189
|
-
expect(resultadoTradutor).toContain(`raio(${traducaoValoresAceitos[valIndex]} 200deg);`);
|
|
1190
1019
|
}
|
|
1020
|
+
// Avaliador Sintático
|
|
1021
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1022
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1023
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1024
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1025
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1026
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1027
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1028
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoPerspectivar[index]);
|
|
1029
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoPerspectivar[index]]);
|
|
1030
|
+
// Tradutor
|
|
1031
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1032
|
+
// O Tradutor deve serializar de acordo e traduzir perspective para perspectivar
|
|
1033
|
+
expect(resultadoTradutor).toContain(`perspectivar(${valoresAceitos[valIndex]});`);
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
});
|
|
1037
|
+
it('Atribuindo Método "steps()"', () => {
|
|
1038
|
+
for (let index = 0; index < metodos_css_1.MetodoPassos.length; index += 1) {
|
|
1039
|
+
// Lexador
|
|
1040
|
+
const resultadoLexador = lexador.mapear([
|
|
1041
|
+
"div {",
|
|
1042
|
+
`${metodos_css_1.MetodoPassos[index]}: steps(2, jump-start);`,
|
|
1043
|
+
"}"
|
|
1044
|
+
]);
|
|
1045
|
+
// O Lexador deve montar um objeto de comprimento 12 sem retornar nenhum erro
|
|
1046
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
1047
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1048
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1049
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1050
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1051
|
+
]));
|
|
1052
|
+
// O Lexador também deve encontrar número no mapeamento
|
|
1053
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1054
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1055
|
+
]));
|
|
1056
|
+
// Avaliador Sintático
|
|
1057
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1058
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1059
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1060
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1061
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1062
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1063
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1064
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoPassos[index]);
|
|
1065
|
+
// Tradutor deve serializar de acordo e traduzir steps para passos, assim como o termo de salto
|
|
1066
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1067
|
+
expect(resultadoTradutor).toContain(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoPassos[index]]);
|
|
1068
|
+
expect(resultadoTradutor).toContain('passos(2, salto-inicial);');
|
|
1069
|
+
}
|
|
1070
|
+
});
|
|
1071
|
+
it('Atribuindo Método "drop-shadow()" com valores de comprimento', () => {
|
|
1072
|
+
for (let index = 0; index < metodos_css_1.MetodoProjetarSombra.length; index += 1) {
|
|
1073
|
+
const comprimentos = ['15px 15px', '15px 15px 15px', '0.5rem 0.5rem', '0.5rem 0.5rem 1rem'];
|
|
1074
|
+
for (let posIndex = 0; posIndex < comprimentos.length; posIndex += 1) {
|
|
1075
|
+
// Lexador
|
|
1076
|
+
const resultadoLexador = lexador.mapear([
|
|
1077
|
+
"div {",
|
|
1078
|
+
`${metodos_css_1.MetodoProjetarSombra[index]}: drop-shadow(${comprimentos[posIndex]});`,
|
|
1079
|
+
"}"
|
|
1080
|
+
]);
|
|
1081
|
+
// O Lexador deve montar um objeto de acordo, sem retornar nenhum erro
|
|
1082
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1083
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1084
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1085
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1086
|
+
]));
|
|
1087
|
+
// O Lexador também deve sempre encontrar valores e quantificadores na operação
|
|
1088
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1089
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1090
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1091
|
+
]));
|
|
1092
|
+
// Avaliador Sintático
|
|
1093
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1094
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1095
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1096
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1097
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1098
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1099
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1100
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoProjetarSombra[index]);
|
|
1101
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoProjetarSombra[index]]);
|
|
1102
|
+
// Tradutor
|
|
1103
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1104
|
+
// O Tradutor deve serializar de acordo e traduzir drop-shadow para projetar-sombra
|
|
1105
|
+
expect(resultadoTradutor).toContain(`projetar-sombra(${comprimentos[posIndex]});`);
|
|
1191
1106
|
}
|
|
1192
|
-
}
|
|
1193
|
-
|
|
1194
|
-
|
|
1107
|
+
}
|
|
1108
|
+
});
|
|
1109
|
+
it('Atribuindo Método "drop-shadow()" com valores de cor e de comprimento', () => {
|
|
1110
|
+
for (let index = 0; index < metodos_css_1.MetodoProjetarSombra.length; index += 1) {
|
|
1111
|
+
const comprimentos = [
|
|
1112
|
+
'15px 15px red',
|
|
1113
|
+
'15px 15px 15px red',
|
|
1114
|
+
'red 0.5rem 0.5rem',
|
|
1115
|
+
'red 0.5rem 0.5rem 1rem',
|
|
1116
|
+
];
|
|
1117
|
+
for (let posIndex = 0; posIndex < comprimentos.length; posIndex += 1) {
|
|
1118
|
+
// Lexador
|
|
1119
|
+
const resultadoLexador = lexador.mapear([
|
|
1120
|
+
"div {",
|
|
1121
|
+
`${metodos_css_1.MetodoProjetarSombra[index]}: drop-shadow(${comprimentos[posIndex]});`,
|
|
1122
|
+
"}"
|
|
1123
|
+
]);
|
|
1124
|
+
// O Lexador deve montar um objeto de acordo, sem retornar nenhum erro
|
|
1125
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1126
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1127
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1128
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1129
|
+
]));
|
|
1130
|
+
// O Lexador também deve sempre encontrar valores e quantificadores na operação
|
|
1131
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1132
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1133
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1134
|
+
]));
|
|
1135
|
+
// Avaliador Sintático
|
|
1136
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1137
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1138
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1139
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1140
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1141
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1142
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1143
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoProjetarSombra[index]);
|
|
1144
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoProjetarSombra[index]]);
|
|
1145
|
+
// Tradutor
|
|
1146
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1147
|
+
// O Tradutor deve serializar de acordo e traduzir red para vermelho
|
|
1148
|
+
expect(resultadoTradutor).toContain('vermelho');
|
|
1149
|
+
}
|
|
1150
|
+
}
|
|
1151
|
+
});
|
|
1152
|
+
it('Atribuindo Método "ray()" com valores de posição e número/quantificador', () => {
|
|
1153
|
+
for (let index = 0; index < metodos_css_1.MetodoRaio.length; index += 1) {
|
|
1154
|
+
const valoresAceitos = ['closest-side', 'closest-corner', 'farthest-side', 'farthest-corner', 'sides', 'contain'];
|
|
1155
|
+
const traducaoValoresAceitos = ['lado-mais-próximo', 'canto-mais-próximo', 'lado-mais-distante', 'canto-mais-distante', 'lados', 'conter'];
|
|
1156
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1195
1157
|
// Lexador
|
|
1196
1158
|
const resultadoLexador = lexador.mapear([
|
|
1197
1159
|
"div {",
|
|
1198
|
-
`${metodos_css_1.MetodoRaio[index]}: ray(200deg);`,
|
|
1160
|
+
`${metodos_css_1.MetodoRaio[index]}: ray(${valoresAceitos[valIndex]} 200deg);`,
|
|
1199
1161
|
"}"
|
|
1200
1162
|
]);
|
|
1201
1163
|
// O Lexador não deve encontrar erros
|
|
@@ -1204,8 +1166,8 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1204
1166
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1205
1167
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1206
1168
|
]));
|
|
1207
|
-
// O Lexador deve montar um objeto de comprimento
|
|
1208
|
-
expect(resultadoLexador.simbolos).toHaveLength(
|
|
1169
|
+
// O Lexador deve montar um objeto de comprimento 12
|
|
1170
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
1209
1171
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1210
1172
|
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1211
1173
|
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
@@ -1223,393 +1185,260 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1223
1185
|
// Tradutor
|
|
1224
1186
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1225
1187
|
// O Tradutor deve serializar de acordo e traduzir ray para raio
|
|
1226
|
-
expect(resultadoTradutor).toContain(`raio(200deg);`);
|
|
1188
|
+
expect(resultadoTradutor).toContain(`raio(${traducaoValoresAceitos[valIndex]} 200deg);`);
|
|
1227
1189
|
}
|
|
1228
|
-
}
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1190
|
+
}
|
|
1191
|
+
});
|
|
1192
|
+
it('Atribuindo Método "ray" com somente número/quantificador', () => {
|
|
1193
|
+
for (let index = 0; index < metodos_css_1.MetodoRaio.length; index += 1) {
|
|
1194
|
+
// Lexador
|
|
1195
|
+
const resultadoLexador = lexador.mapear([
|
|
1196
|
+
"div {",
|
|
1197
|
+
`${metodos_css_1.MetodoRaio[index]}: ray(200deg);`,
|
|
1198
|
+
"}"
|
|
1199
|
+
]);
|
|
1200
|
+
// O Lexador não deve encontrar erros
|
|
1201
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1202
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1203
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1204
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1205
|
+
]));
|
|
1206
|
+
// O Lexador deve montar um objeto de comprimento 11
|
|
1207
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1208
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1209
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1210
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1211
|
+
]));
|
|
1212
|
+
// Avaliador Sintático
|
|
1213
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1214
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1215
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1216
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1217
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1218
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1219
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1220
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoRaio[index]);
|
|
1221
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoRaio[index]]);
|
|
1222
|
+
// Tradutor
|
|
1223
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1224
|
+
// O Tradutor deve serializar de acordo e traduzir ray para raio
|
|
1225
|
+
expect(resultadoTradutor).toContain(`raio(200deg);`);
|
|
1226
|
+
}
|
|
1227
|
+
});
|
|
1228
|
+
it('Atribuindo Método "rotate()"', () => {
|
|
1229
|
+
for (let index = 0; index < metodos_css_1.MetodosRotacionar.length; index += 1) {
|
|
1230
|
+
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1231
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1232
|
+
// Lexador
|
|
1233
|
+
const resultadoLexador = lexador.mapear([
|
|
1234
|
+
"div {",
|
|
1235
|
+
`${metodos_css_1.MetodosRotacionar[index]}: rotate(${valoresAceitos[valIndex]});`,
|
|
1236
|
+
"}"
|
|
1237
|
+
]);
|
|
1238
|
+
// O Lexador não deve encontrar erros
|
|
1239
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1240
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1241
|
+
if (valIndex <= 1) {
|
|
1242
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1243
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1244
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1245
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1246
|
+
]));
|
|
1269
1247
|
}
|
|
1270
|
-
|
|
1271
|
-
|
|
1272
|
-
it('Atribuindo Método "rotateX()"', () => {
|
|
1273
|
-
for (let index = 0; index < metodos_css_1.MetodosRotacionar.length; index += 1) {
|
|
1274
|
-
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1275
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1276
|
-
// Lexador
|
|
1277
|
-
const resultadoLexador = lexador.mapear([
|
|
1278
|
-
"div {",
|
|
1279
|
-
`${metodos_css_1.MetodosRotacionar[index]}: rotateX(${valoresAceitos[valIndex]});`,
|
|
1280
|
-
"}"
|
|
1281
|
-
]);
|
|
1282
|
-
// O Lexador não deve encontrar erros
|
|
1283
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1284
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1248
|
+
else {
|
|
1249
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1285
1250
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1286
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1251
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1287
1252
|
]));
|
|
1288
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1289
|
-
if (valIndex <= 1) {
|
|
1290
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1291
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1292
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1293
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1294
|
-
]));
|
|
1295
|
-
}
|
|
1296
|
-
else {
|
|
1297
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1298
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1299
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1300
|
-
]));
|
|
1301
|
-
}
|
|
1302
|
-
// Avaliador Sintático
|
|
1303
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1304
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1305
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1306
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1307
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1308
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1309
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1310
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1311
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1312
|
-
// Tradutor
|
|
1313
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1314
|
-
// O Tradutor deve serializar de acordo e traduzir rotateX para rotacionar-horizontal
|
|
1315
|
-
expect(resultadoTradutor).toContain(`rotacionar-horizontal(${valoresAceitos[valIndex]});`);
|
|
1316
1253
|
}
|
|
1254
|
+
// Avaliador Sintático
|
|
1255
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1256
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1257
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1258
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1259
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1260
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1261
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1262
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1263
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1264
|
+
// Tradutor
|
|
1265
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1266
|
+
// O Tradutor deve serializar de acordo e traduzir rotate para rotacionar
|
|
1267
|
+
expect(resultadoTradutor).toContain(`rotacionar(${valoresAceitos[valIndex]});`);
|
|
1317
1268
|
}
|
|
1318
|
-
}
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1269
|
+
}
|
|
1270
|
+
});
|
|
1271
|
+
it('Atribuindo Método "rotateX()"', () => {
|
|
1272
|
+
for (let index = 0; index < metodos_css_1.MetodosRotacionar.length; index += 1) {
|
|
1273
|
+
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1274
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1275
|
+
// Lexador
|
|
1276
|
+
const resultadoLexador = lexador.mapear([
|
|
1277
|
+
"div {",
|
|
1278
|
+
`${metodos_css_1.MetodosRotacionar[index]}: rotateX(${valoresAceitos[valIndex]});`,
|
|
1279
|
+
"}"
|
|
1280
|
+
]);
|
|
1281
|
+
// O Lexador não deve encontrar erros
|
|
1282
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1283
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1284
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1285
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1286
|
+
]));
|
|
1287
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1288
|
+
if (valIndex <= 1) {
|
|
1289
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1332
1290
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1333
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1291
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1292
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1334
1293
|
]));
|
|
1335
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1336
|
-
if (valIndex <= 1) {
|
|
1337
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1338
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1339
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1340
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1341
|
-
]));
|
|
1342
|
-
}
|
|
1343
|
-
else {
|
|
1344
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1345
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1346
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1347
|
-
]));
|
|
1348
|
-
}
|
|
1349
|
-
// Avaliador Sintático
|
|
1350
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1351
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1352
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1353
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1354
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1355
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1356
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1357
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1358
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1359
|
-
// Tradutor
|
|
1360
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1361
|
-
// O Tradutor deve serializar de acordo e traduzir rotateY para rotacionar-vertical
|
|
1362
|
-
expect(resultadoTradutor).toContain(`rotacionar-vertical(${valoresAceitos[valIndex]});`);
|
|
1363
1294
|
}
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
it('Atribuindo Método "rotateZ()"', () => {
|
|
1367
|
-
for (let index = 0; index < metodos_css_1.MetodosRotacionar.length; index += 1) {
|
|
1368
|
-
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1369
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1370
|
-
// Lexador
|
|
1371
|
-
const resultadoLexador = lexador.mapear([
|
|
1372
|
-
"div {",
|
|
1373
|
-
`${metodos_css_1.MetodosRotacionar[index]}: rotateZ(${valoresAceitos[valIndex]});`,
|
|
1374
|
-
"}"
|
|
1375
|
-
]);
|
|
1376
|
-
// O Lexador não deve encontrar erros
|
|
1377
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1378
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1295
|
+
else {
|
|
1296
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1379
1297
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1380
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1298
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1381
1299
|
]));
|
|
1382
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1383
|
-
if (valIndex <= 1) {
|
|
1384
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1385
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1386
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1387
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1388
|
-
]));
|
|
1389
|
-
}
|
|
1390
|
-
else {
|
|
1391
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1392
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1393
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1394
|
-
]));
|
|
1395
|
-
}
|
|
1396
|
-
// Avaliador Sintático
|
|
1397
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1398
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1399
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1400
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1401
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1402
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1403
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1404
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1405
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1406
|
-
// Tradutor
|
|
1407
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1408
|
-
// O Tradutor deve serializar de acordo e traduzir rotateZ para rotacionar-eixo-z
|
|
1409
|
-
expect(resultadoTradutor).toContain(`rotacionar-eixo-z(${valoresAceitos[valIndex]});`);
|
|
1410
1300
|
}
|
|
1301
|
+
// Avaliador Sintático
|
|
1302
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1303
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1304
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1305
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1306
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1307
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1308
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1309
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1310
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1311
|
+
// Tradutor
|
|
1312
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1313
|
+
// O Tradutor deve serializar de acordo e traduzir rotateX para rotacionar-horizontal
|
|
1314
|
+
expect(resultadoTradutor).toContain(`rotacionar-horizontal(${valoresAceitos[valIndex]});`);
|
|
1411
1315
|
}
|
|
1412
|
-
}
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1316
|
+
}
|
|
1317
|
+
});
|
|
1318
|
+
it('Atribuindo Método "rotateY()"', () => {
|
|
1319
|
+
for (let index = 0; index < metodos_css_1.MetodosRotacionar.length; index += 1) {
|
|
1320
|
+
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1321
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1322
|
+
// Lexador
|
|
1323
|
+
const resultadoLexador = lexador.mapear([
|
|
1324
|
+
"div {",
|
|
1325
|
+
`${metodos_css_1.MetodosRotacionar[index]}: rotateY(${valoresAceitos[valIndex]});`,
|
|
1326
|
+
"}"
|
|
1327
|
+
]);
|
|
1328
|
+
// O Lexador não deve encontrar erros
|
|
1329
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1330
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1331
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1332
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1333
|
+
]));
|
|
1334
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1335
|
+
if (valIndex <= 1) {
|
|
1336
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1426
1337
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1427
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1338
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1339
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1428
1340
|
]));
|
|
1429
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1430
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1431
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1432
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1433
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1434
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1435
|
-
]));
|
|
1436
|
-
}
|
|
1437
|
-
else {
|
|
1438
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1439
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1440
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1441
|
-
]));
|
|
1442
|
-
}
|
|
1443
|
-
// Avaliador Sintático
|
|
1444
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1445
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1446
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1447
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1448
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1449
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1450
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1451
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoRotacionarMatiz[index]);
|
|
1452
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoRotacionarMatiz[index]]);
|
|
1453
|
-
// Tradutor
|
|
1454
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1455
|
-
// O Tradutor deve serializar de acordo e traduzir hue-rotate para rotacionar-matiz
|
|
1456
|
-
expect(resultadoTradutor).toContain(`rotacionar-matiz(${valoresAceitos[valIndex]});`);
|
|
1457
1341
|
}
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
it('Atribuindo Método "saturate()"', () => {
|
|
1461
|
-
for (let index = 0; index < metodos_css_1.MetodoSaturar.length; index += 1) {
|
|
1462
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1463
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1464
|
-
// Lexador
|
|
1465
|
-
const resultadoLexador = lexador.mapear([
|
|
1466
|
-
"div {",
|
|
1467
|
-
`${metodos_css_1.MetodoSaturar[index]}: saturate(${valoresAceitos[valIndex]});`,
|
|
1468
|
-
"}"
|
|
1469
|
-
]);
|
|
1470
|
-
// O Lexador não deve encontrar erros
|
|
1471
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1472
|
-
// O valor recebido deve ser mapeado como METODO
|
|
1342
|
+
else {
|
|
1343
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1473
1344
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1474
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1345
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1475
1346
|
]));
|
|
1476
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1477
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1478
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1479
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1480
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1481
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1482
|
-
]));
|
|
1483
|
-
}
|
|
1484
|
-
else {
|
|
1485
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1486
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1487
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1488
|
-
]));
|
|
1489
|
-
}
|
|
1490
|
-
// Avaliador Sintático
|
|
1491
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1492
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1493
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1494
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1495
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1496
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1497
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1498
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoSaturar[index]);
|
|
1499
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoSaturar[index]]);
|
|
1500
|
-
// Tradutor
|
|
1501
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1502
|
-
// O Tradutor deve serializar de acordo e traduzir saturate para saturar
|
|
1503
|
-
expect(resultadoTradutor).toContain(`saturar(${valoresAceitos[valIndex]});`);
|
|
1504
1347
|
}
|
|
1348
|
+
// Avaliador Sintático
|
|
1349
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1350
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1351
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1352
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1353
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1354
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1355
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1356
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1357
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1358
|
+
// Tradutor
|
|
1359
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1360
|
+
// O Tradutor deve serializar de acordo e traduzir rotateY para rotacionar-vertical
|
|
1361
|
+
expect(resultadoTradutor).toContain(`rotacionar-vertical(${valoresAceitos[valIndex]});`);
|
|
1505
1362
|
}
|
|
1506
|
-
}
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1363
|
+
}
|
|
1364
|
+
});
|
|
1365
|
+
it('Atribuindo Método "rotateZ()"', () => {
|
|
1366
|
+
for (let index = 0; index < metodos_css_1.MetodosRotacionar.length; index += 1) {
|
|
1367
|
+
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1368
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1369
|
+
// Lexador
|
|
1370
|
+
const resultadoLexador = lexador.mapear([
|
|
1371
|
+
"div {",
|
|
1372
|
+
`${metodos_css_1.MetodosRotacionar[index]}: rotateZ(${valoresAceitos[valIndex]});`,
|
|
1373
|
+
"}"
|
|
1374
|
+
]);
|
|
1375
|
+
// O Lexador não deve encontrar erros
|
|
1376
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1377
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1378
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1379
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1380
|
+
]));
|
|
1381
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1382
|
+
if (valIndex <= 1) {
|
|
1383
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1520
1384
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1521
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1385
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1386
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1522
1387
|
]));
|
|
1523
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1524
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1525
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1526
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1527
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1528
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1529
|
-
]));
|
|
1530
|
-
}
|
|
1531
|
-
else {
|
|
1532
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1533
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1534
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1535
|
-
]));
|
|
1536
|
-
}
|
|
1537
|
-
// Avaliador Sintático
|
|
1538
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1539
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1540
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1541
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1542
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1543
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1544
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1545
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoSepia[index]);
|
|
1546
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoSepia[index]]);
|
|
1547
|
-
// Tradutor
|
|
1548
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1549
|
-
// O Tradutor deve serializar de acordo e traduzir sépia para sepia
|
|
1550
|
-
expect(resultadoTradutor).toContain(`sepia(${valoresAceitos[valIndex]});`);
|
|
1551
1388
|
}
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1557
|
-
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1558
|
-
// Lexador
|
|
1559
|
-
const resultadoLexador = lexador.mapear([
|
|
1560
|
-
"div {",
|
|
1561
|
-
`${metodos_css_1.MetodosTranslacao[index]}: translate(${valoresAceitos[valIndex]});`,
|
|
1562
|
-
"}"
|
|
1563
|
-
]);
|
|
1564
|
-
// O Lexador não deve encontrar erros
|
|
1565
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1566
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1567
|
-
if (valIndex <= 1) {
|
|
1568
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1569
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1570
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1571
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1572
|
-
]));
|
|
1573
|
-
}
|
|
1574
|
-
else {
|
|
1575
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1576
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1577
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1578
|
-
]));
|
|
1579
|
-
}
|
|
1580
|
-
// Avaliador Sintático
|
|
1581
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1582
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1583
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1584
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1585
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1586
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1587
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1588
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1589
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1590
|
-
// Tradutor
|
|
1591
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1592
|
-
// O Tradutor deve serializar de acordo e traduzir translate para translação
|
|
1593
|
-
expect(resultadoTradutor).toContain(`translação(${valoresAceitos[valIndex]});`);
|
|
1389
|
+
else {
|
|
1390
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1391
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1392
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1393
|
+
]));
|
|
1594
1394
|
}
|
|
1395
|
+
// Avaliador Sintático
|
|
1396
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1397
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1398
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1399
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1400
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1401
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1402
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1403
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosRotacionar[index]);
|
|
1404
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosRotacionar[index]]);
|
|
1405
|
+
// Tradutor
|
|
1406
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1407
|
+
// O Tradutor deve serializar de acordo e traduzir rotateZ para rotacionar-eixo-z
|
|
1408
|
+
expect(resultadoTradutor).toContain(`rotacionar-eixo-z(${valoresAceitos[valIndex]});`);
|
|
1595
1409
|
}
|
|
1596
|
-
}
|
|
1597
|
-
|
|
1598
|
-
|
|
1410
|
+
}
|
|
1411
|
+
});
|
|
1412
|
+
it('Atribuindo Método "hue-rotate()"', () => {
|
|
1413
|
+
for (let index = 0; index < metodos_css_1.MetodoRotacionarMatiz.length; index += 1) {
|
|
1414
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1415
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1599
1416
|
// Lexador
|
|
1600
1417
|
const resultadoLexador = lexador.mapear([
|
|
1601
1418
|
"div {",
|
|
1602
|
-
`${metodos_css_1.
|
|
1419
|
+
`${metodos_css_1.MetodoRotacionarMatiz[index]}: hue-rotate(${valoresAceitos[valIndex]});`,
|
|
1603
1420
|
"}"
|
|
1604
1421
|
]);
|
|
1605
1422
|
// O Lexador não deve encontrar erros
|
|
1606
1423
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1607
|
-
// O
|
|
1608
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1424
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1609
1425
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1610
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1611
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1426
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1612
1427
|
]));
|
|
1428
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1429
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1430
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1431
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1432
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1433
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1434
|
+
]));
|
|
1435
|
+
}
|
|
1436
|
+
else {
|
|
1437
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1438
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1439
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1440
|
+
]));
|
|
1441
|
+
}
|
|
1613
1442
|
// Avaliador Sintático
|
|
1614
1443
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1615
1444
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -1618,160 +1447,191 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1618
1447
|
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1619
1448
|
const primeiroResultadoTipado = primeiroResultado;
|
|
1620
1449
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1621
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.
|
|
1450
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoRotacionarMatiz[index]);
|
|
1451
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoRotacionarMatiz[index]]);
|
|
1622
1452
|
// Tradutor
|
|
1623
1453
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1624
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
1625
|
-
expect(resultadoTradutor).toContain(`
|
|
1454
|
+
// O Tradutor deve serializar de acordo e traduzir hue-rotate para rotacionar-matiz
|
|
1455
|
+
expect(resultadoTradutor).toContain(`rotacionar-matiz(${valoresAceitos[valIndex]});`);
|
|
1626
1456
|
}
|
|
1627
|
-
}
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1457
|
+
}
|
|
1458
|
+
});
|
|
1459
|
+
it('Atribuindo Método "saturate()"', () => {
|
|
1460
|
+
for (let index = 0; index < metodos_css_1.MetodoSaturar.length; index += 1) {
|
|
1461
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1462
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1463
|
+
// Lexador
|
|
1464
|
+
const resultadoLexador = lexador.mapear([
|
|
1465
|
+
"div {",
|
|
1466
|
+
`${metodos_css_1.MetodoSaturar[index]}: saturate(${valoresAceitos[valIndex]});`,
|
|
1467
|
+
"}"
|
|
1468
|
+
]);
|
|
1469
|
+
// O Lexador não deve encontrar erros
|
|
1470
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1471
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1472
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1473
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1474
|
+
]));
|
|
1475
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1476
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1477
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1641
1478
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1642
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1479
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1480
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1643
1481
|
]));
|
|
1644
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1645
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1646
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1647
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1648
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1649
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1650
|
-
]));
|
|
1651
|
-
}
|
|
1652
|
-
else {
|
|
1653
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1654
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1655
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1656
|
-
]));
|
|
1657
|
-
}
|
|
1658
|
-
// Avaliador Sintático
|
|
1659
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1660
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1661
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1662
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1663
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1664
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1665
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1666
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1667
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1668
|
-
// Tradutor
|
|
1669
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1670
|
-
// O Tradutor deve serializar de acordo e traduzir translateX para translacao-horizontal
|
|
1671
|
-
expect(resultadoTradutor).toContain(`translacao-horizontal(${valoresAceitos[valIndex]});`);
|
|
1672
1482
|
}
|
|
1483
|
+
else {
|
|
1484
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1485
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1486
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1487
|
+
]));
|
|
1488
|
+
}
|
|
1489
|
+
// Avaliador Sintático
|
|
1490
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1491
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1492
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1493
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1494
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1495
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1496
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1497
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoSaturar[index]);
|
|
1498
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoSaturar[index]]);
|
|
1499
|
+
// Tradutor
|
|
1500
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1501
|
+
// O Tradutor deve serializar de acordo e traduzir saturate para saturar
|
|
1502
|
+
expect(resultadoTradutor).toContain(`saturar(${valoresAceitos[valIndex]});`);
|
|
1673
1503
|
}
|
|
1674
|
-
}
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1504
|
+
}
|
|
1505
|
+
});
|
|
1506
|
+
it('Atribuindo Método "sepia()"', () => {
|
|
1507
|
+
for (let index = 0; index < metodos_css_1.MetodoSepia.length; index += 1) {
|
|
1508
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1509
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1510
|
+
// Lexador
|
|
1511
|
+
const resultadoLexador = lexador.mapear([
|
|
1512
|
+
"div {",
|
|
1513
|
+
`${metodos_css_1.MetodoSepia[index]}: sepia(${valoresAceitos[valIndex]});`,
|
|
1514
|
+
"}"
|
|
1515
|
+
]);
|
|
1516
|
+
// O Lexador não deve encontrar erros
|
|
1517
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1518
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1519
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1520
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1521
|
+
]));
|
|
1522
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1523
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1524
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1688
1525
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1689
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1526
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1527
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1690
1528
|
]));
|
|
1691
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1692
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1693
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1694
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1695
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1696
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1697
|
-
]));
|
|
1698
|
-
}
|
|
1699
|
-
else {
|
|
1700
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1701
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1702
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1703
|
-
]));
|
|
1704
|
-
}
|
|
1705
|
-
// Avaliador Sintático
|
|
1706
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1707
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1708
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1709
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1710
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1711
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1712
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1713
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1714
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1715
|
-
// Tradutor
|
|
1716
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1717
|
-
// O Tradutor deve serializar de acordo e traduzir translateY para translacao-vertical
|
|
1718
|
-
expect(resultadoTradutor).toContain(`translacao-vertical(${valoresAceitos[valIndex]});`);
|
|
1719
1529
|
}
|
|
1530
|
+
else {
|
|
1531
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1532
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1533
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1534
|
+
]));
|
|
1535
|
+
}
|
|
1536
|
+
// Avaliador Sintático
|
|
1537
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1538
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1539
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1540
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1541
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1542
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1543
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1544
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodoSepia[index]);
|
|
1545
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodoSepia[index]]);
|
|
1546
|
+
// Tradutor
|
|
1547
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1548
|
+
// O Tradutor deve serializar de acordo e traduzir sépia para sepia
|
|
1549
|
+
expect(resultadoTradutor).toContain(`sepia(${valoresAceitos[valIndex]});`);
|
|
1720
1550
|
}
|
|
1721
|
-
}
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1551
|
+
}
|
|
1552
|
+
});
|
|
1553
|
+
it('Atribuindo Método "translate()"', () => {
|
|
1554
|
+
for (let index = 0; index < metodos_css_1.MetodosTranslacao.length; index += 1) {
|
|
1555
|
+
const valoresAceitos = ['18deg', '3.142rad', '0', '1'];
|
|
1556
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1557
|
+
// Lexador
|
|
1558
|
+
const resultadoLexador = lexador.mapear([
|
|
1559
|
+
"div {",
|
|
1560
|
+
`${metodos_css_1.MetodosTranslacao[index]}: translate(${valoresAceitos[valIndex]});`,
|
|
1561
|
+
"}"
|
|
1562
|
+
]);
|
|
1563
|
+
// O Lexador não deve encontrar erros
|
|
1564
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1565
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1566
|
+
if (valIndex <= 1) {
|
|
1567
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1735
1568
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1736
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1569
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1570
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1737
1571
|
]));
|
|
1738
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1739
|
-
if (valIndex === 0 || valIndex === 1) {
|
|
1740
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1741
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1742
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1743
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1744
|
-
]));
|
|
1745
|
-
}
|
|
1746
|
-
else {
|
|
1747
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1748
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1749
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1750
|
-
]));
|
|
1751
|
-
}
|
|
1752
|
-
// Avaliador Sintático
|
|
1753
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1754
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1755
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1756
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1757
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1758
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1759
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1760
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1761
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1762
|
-
// Tradutor
|
|
1763
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1764
|
-
// O Tradutor deve serializar de acordo e traduzir translateZ para translação-eixo-z
|
|
1765
|
-
expect(resultadoTradutor).toContain(`translacao-eixo-z(${valoresAceitos[valIndex]});`);
|
|
1766
1572
|
}
|
|
1573
|
+
else {
|
|
1574
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1575
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1576
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1577
|
+
]));
|
|
1578
|
+
}
|
|
1579
|
+
// Avaliador Sintático
|
|
1580
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1581
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1582
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1583
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1584
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1585
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1586
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1587
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1588
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1589
|
+
// Tradutor
|
|
1590
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1591
|
+
// O Tradutor deve serializar de acordo e traduzir translate para translação
|
|
1592
|
+
expect(resultadoTradutor).toContain(`translação(${valoresAceitos[valIndex]});`);
|
|
1767
1593
|
}
|
|
1768
|
-
}
|
|
1769
|
-
|
|
1770
|
-
|
|
1594
|
+
}
|
|
1595
|
+
});
|
|
1596
|
+
it('Atribuindo Método "translate() com múltiplos valores"', () => {
|
|
1597
|
+
for (let index = 0; index < metodos_css_1.MetodosTranslacao.length; index += 1) {
|
|
1598
|
+
// Lexador
|
|
1599
|
+
const resultadoLexador = lexador.mapear([
|
|
1600
|
+
"div {",
|
|
1601
|
+
`${metodos_css_1.MetodosTranslacao[index]}: translate(100deg, 100deg);`,
|
|
1602
|
+
"}"
|
|
1603
|
+
]);
|
|
1604
|
+
// O Lexador não deve encontrar erros
|
|
1605
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1606
|
+
// O Lexador deve montar um objeto de comprimento 14
|
|
1607
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1608
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1609
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1610
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1611
|
+
]));
|
|
1612
|
+
// Avaliador Sintático
|
|
1613
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1614
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1615
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1616
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1617
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1618
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1619
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1620
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1621
|
+
// Tradutor
|
|
1622
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1623
|
+
// O Tradutor deve serializar de acordo e traduzir translate para translação
|
|
1624
|
+
expect(resultadoTradutor).toContain(`translação(100deg, 100deg);`);
|
|
1625
|
+
}
|
|
1626
|
+
});
|
|
1627
|
+
it('Atribuindo Método "translateX()"', () => {
|
|
1628
|
+
for (let index = 0; index < metodos_css_1.MetodosTranslacao.length; index += 1) {
|
|
1629
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
1630
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1771
1631
|
// Lexador
|
|
1772
1632
|
const resultadoLexador = lexador.mapear([
|
|
1773
1633
|
"div {",
|
|
1774
|
-
`${metodos_css_1.MetodosTranslacao[index]}:
|
|
1634
|
+
`${metodos_css_1.MetodosTranslacao[index]}: translateX(${valoresAceitos[valIndex]});`,
|
|
1775
1635
|
"}"
|
|
1776
1636
|
]);
|
|
1777
1637
|
// O Lexador não deve encontrar erros
|
|
@@ -1780,12 +1640,67 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1780
1640
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1781
1641
|
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1782
1642
|
]));
|
|
1783
|
-
// O Lexador deve montar um objeto de comprimento
|
|
1784
|
-
|
|
1643
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1644
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1645
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1646
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1647
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1648
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1649
|
+
]));
|
|
1650
|
+
}
|
|
1651
|
+
else {
|
|
1652
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1653
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1654
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1655
|
+
]));
|
|
1656
|
+
}
|
|
1657
|
+
// Avaliador Sintático
|
|
1658
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1659
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1660
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1661
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1662
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1663
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1664
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1665
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1666
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1667
|
+
// Tradutor
|
|
1668
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1669
|
+
// O Tradutor deve serializar de acordo e traduzir translateX para translacao-horizontal
|
|
1670
|
+
expect(resultadoTradutor).toContain(`translacao-horizontal(${valoresAceitos[valIndex]});`);
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
});
|
|
1674
|
+
it('Atribuindo Método "translateY()"', () => {
|
|
1675
|
+
for (let index = 0; index < metodos_css_1.MetodosTranslacao.length; index += 1) {
|
|
1676
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
1677
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1678
|
+
// Lexador
|
|
1679
|
+
const resultadoLexador = lexador.mapear([
|
|
1680
|
+
"div {",
|
|
1681
|
+
`${metodos_css_1.MetodosTranslacao[index]}: translateY(${valoresAceitos[valIndex]});`,
|
|
1682
|
+
"}"
|
|
1683
|
+
]);
|
|
1684
|
+
// O Lexador não deve encontrar erros
|
|
1685
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1686
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1785
1687
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1786
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1787
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1688
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1788
1689
|
]));
|
|
1690
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1691
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1692
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1693
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1694
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1695
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1696
|
+
]));
|
|
1697
|
+
}
|
|
1698
|
+
else {
|
|
1699
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1700
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1701
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1702
|
+
]));
|
|
1703
|
+
}
|
|
1789
1704
|
// Avaliador Sintático
|
|
1790
1705
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1791
1706
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
@@ -1795,102 +1710,185 @@ describe('Testando MÉTODOS no processo de TRADUÇÃO REVERSA', () => {
|
|
|
1795
1710
|
const primeiroResultadoTipado = primeiroResultado;
|
|
1796
1711
|
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1797
1712
|
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1713
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1798
1714
|
// Tradutor
|
|
1799
1715
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1800
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
1801
|
-
expect(resultadoTradutor).toContain(`translacao-
|
|
1716
|
+
// O Tradutor deve serializar de acordo e traduzir translateY para translacao-vertical
|
|
1717
|
+
expect(resultadoTradutor).toContain(`translacao-vertical(${valoresAceitos[valIndex]});`);
|
|
1802
1718
|
}
|
|
1803
|
-
}
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1814
|
-
|
|
1815
|
-
|
|
1816
|
-
|
|
1817
|
-
|
|
1818
|
-
|
|
1819
|
-
|
|
1820
|
-
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1719
|
+
}
|
|
1720
|
+
});
|
|
1721
|
+
it('Atribuindo Método "translateZ()"', () => {
|
|
1722
|
+
for (let index = 0; index < metodos_css_1.MetodosTranslacao.length; index += 1) {
|
|
1723
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
1724
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1725
|
+
// Lexador
|
|
1726
|
+
const resultadoLexador = lexador.mapear([
|
|
1727
|
+
"div {",
|
|
1728
|
+
`${metodos_css_1.MetodosTranslacao[index]}: translateZ(${valoresAceitos[valIndex]});`,
|
|
1729
|
+
"}"
|
|
1730
|
+
]);
|
|
1731
|
+
// O Lexador não deve encontrar erros
|
|
1732
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1733
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1734
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1735
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1736
|
+
]));
|
|
1737
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1738
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1739
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1740
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1741
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1742
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1743
|
+
]));
|
|
1744
|
+
}
|
|
1745
|
+
else {
|
|
1746
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1827
1747
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1828
|
-
expect.objectContaining({ tipo: css_1.default.
|
|
1748
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1829
1749
|
]));
|
|
1830
|
-
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1831
|
-
if (valIndex === 0) {
|
|
1832
|
-
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1833
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1834
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1835
|
-
]));
|
|
1836
|
-
}
|
|
1837
|
-
else if (valIndex === 1 || valIndex === 2 || valIndex === 3) {
|
|
1838
|
-
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
1839
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1840
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1841
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1842
|
-
]));
|
|
1843
|
-
}
|
|
1844
|
-
else if (valIndex === 4 || valIndex === 5 || valIndex === 6) {
|
|
1845
|
-
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
1846
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1847
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1848
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1849
|
-
]));
|
|
1850
|
-
}
|
|
1851
|
-
else if (valIndex === 7) {
|
|
1852
|
-
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
1853
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1854
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1855
|
-
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1856
|
-
]));
|
|
1857
|
-
}
|
|
1858
|
-
else {
|
|
1859
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1860
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1861
|
-
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1862
|
-
]));
|
|
1863
|
-
}
|
|
1864
|
-
// Avaliador Sintático
|
|
1865
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1866
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1867
|
-
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1868
|
-
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1869
|
-
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1870
|
-
const primeiroResultadoTipado = primeiroResultado;
|
|
1871
|
-
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1872
|
-
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1873
|
-
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1874
|
-
// Tradutor
|
|
1875
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1876
|
-
// O Tradutor deve serializar de acordo e traduzir translate3d para translacao-3d
|
|
1877
|
-
if (valIndex !== 8) {
|
|
1878
|
-
expect(resultadoTradutor).toContain(`translacao-3d(${valoresAceitos[valIndex]});`);
|
|
1879
|
-
}
|
|
1880
|
-
else {
|
|
1881
|
-
expect(resultadoTradutor).toContain(`translacao-3d(0);`);
|
|
1882
|
-
}
|
|
1883
1750
|
}
|
|
1751
|
+
// Avaliador Sintático
|
|
1752
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1753
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1754
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1755
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1756
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1757
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1758
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1759
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1760
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1761
|
+
// Tradutor
|
|
1762
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1763
|
+
// O Tradutor deve serializar de acordo e traduzir translateZ para translação-eixo-z
|
|
1764
|
+
expect(resultadoTradutor).toContain(`translacao-eixo-z(${valoresAceitos[valIndex]});`);
|
|
1884
1765
|
}
|
|
1885
|
-
}
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1766
|
+
}
|
|
1767
|
+
});
|
|
1768
|
+
it('Atribuindo Método "translate3d()"', () => {
|
|
1769
|
+
for (let index = 0; index < metodos_css_1.MetodosTranslacao.length; index += 1) {
|
|
1770
|
+
// Lexador
|
|
1771
|
+
const resultadoLexador = lexador.mapear([
|
|
1772
|
+
"div {",
|
|
1773
|
+
`${metodos_css_1.MetodosTranslacao[index]}: translate3d(5ch, 0.4in, 5px);`,
|
|
1774
|
+
"}"
|
|
1775
|
+
]);
|
|
1776
|
+
// O Lexador não deve encontrar erros
|
|
1777
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1778
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1779
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1780
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1781
|
+
]));
|
|
1782
|
+
// O Lexador deve montar um objeto de comprimento 17
|
|
1783
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
1784
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1785
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1786
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1787
|
+
]));
|
|
1788
|
+
// Avaliador Sintático
|
|
1789
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1790
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1791
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1792
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1793
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1794
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1795
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1796
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1797
|
+
// Tradutor
|
|
1798
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1799
|
+
// O Tradutor deve serializar de acordo e traduzir translate3d para translação-3d
|
|
1800
|
+
expect(resultadoTradutor).toContain(`translacao-3d(5ch, 0.4in, 5px);`);
|
|
1801
|
+
}
|
|
1802
|
+
});
|
|
1803
|
+
it('Atribuindo Método "translate3d() cobrindo todos os casos"', () => {
|
|
1804
|
+
for (let index = 0; index < metodos_css_1.MetodosTranslacao.length; index += 1) {
|
|
1805
|
+
const valoresAceitos = [
|
|
1806
|
+
'0',
|
|
1807
|
+
'0, 62px, 135px',
|
|
1808
|
+
'2.7rem, 0, 1rem',
|
|
1809
|
+
'5ch, 0.4in, 0',
|
|
1810
|
+
'0, 0, 135px',
|
|
1811
|
+
'0, 2.7rem, 0',
|
|
1812
|
+
'5ch, 0, 0',
|
|
1813
|
+
'42px, 62px, 135px',
|
|
1814
|
+
'0, 0, 0',
|
|
1815
|
+
];
|
|
1816
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1817
|
+
// Lexador
|
|
1818
|
+
const resultadoLexador = lexador.mapear([
|
|
1819
|
+
"div {",
|
|
1820
|
+
`${metodos_css_1.MetodosTranslacao[index]}: translate3d(${valoresAceitos[valIndex]});`,
|
|
1821
|
+
"}"
|
|
1822
|
+
]);
|
|
1823
|
+
// O Lexador não deve encontrar erros
|
|
1824
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1825
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1826
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1827
|
+
expect.objectContaining({ tipo: css_1.default.METODO }),
|
|
1828
|
+
]));
|
|
1829
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1830
|
+
if (valIndex === 0) {
|
|
1831
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1832
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1833
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1834
|
+
]));
|
|
1835
|
+
}
|
|
1836
|
+
else if (valIndex === 1 || valIndex === 2 || valIndex === 3) {
|
|
1837
|
+
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
1838
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1839
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1840
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1841
|
+
]));
|
|
1842
|
+
}
|
|
1843
|
+
else if (valIndex === 4 || valIndex === 5 || valIndex === 6) {
|
|
1844
|
+
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
1845
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1846
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1847
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1848
|
+
]));
|
|
1849
|
+
}
|
|
1850
|
+
else if (valIndex === 7) {
|
|
1851
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
1852
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1853
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1854
|
+
expect.objectContaining({ tipo: css_1.default.QUANTIFICADOR }),
|
|
1855
|
+
]));
|
|
1856
|
+
}
|
|
1857
|
+
else {
|
|
1858
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1859
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1860
|
+
expect.objectContaining({ tipo: css_1.default.NUMERO }),
|
|
1861
|
+
]));
|
|
1862
|
+
}
|
|
1863
|
+
// Avaliador Sintático
|
|
1864
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1865
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1866
|
+
expect(resultadoAvaliadorSintatico.length).toBeGreaterThanOrEqual(1);
|
|
1867
|
+
const primeiroResultado = resultadoAvaliadorSintatico[0];
|
|
1868
|
+
expect(primeiroResultado).toBeInstanceOf(declaracoes_1.BlocoDeclaracao);
|
|
1869
|
+
const primeiroResultadoTipado = primeiroResultado;
|
|
1870
|
+
expect(primeiroResultadoTipado.modificadores.length).toBeGreaterThanOrEqual(1);
|
|
1871
|
+
expect(primeiroResultadoTipado.modificadores[0].propriedadeCss).toStrictEqual(metodos_css_1.MetodosTranslacao[index]);
|
|
1872
|
+
expect(primeiroResultadoTipado.modificadores[0].nomeFoles).toStrictEqual(metodos_css_1.TraducaoValoresMetodos[metodos_css_1.MetodosTranslacao[index]]);
|
|
1873
|
+
// Tradutor
|
|
1874
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1875
|
+
// O Tradutor deve serializar de acordo e traduzir translate3d para translacao-3d
|
|
1876
|
+
if (valIndex !== 8) {
|
|
1877
|
+
expect(resultadoTradutor).toContain(`translacao-3d(${valoresAceitos[valIndex]});`);
|
|
1878
|
+
}
|
|
1879
|
+
else {
|
|
1880
|
+
expect(resultadoTradutor).toContain(`translacao-3d(0);`);
|
|
1881
|
+
}
|
|
1892
1882
|
}
|
|
1893
|
-
}
|
|
1883
|
+
}
|
|
1884
|
+
});
|
|
1885
|
+
it('Caso de Falha - Erro ao instanciar classe SeletorValorReverso', () => {
|
|
1886
|
+
for (let index = 0; index < metodos_css_1.MetodosCss.length; index += 1) {
|
|
1887
|
+
const metodoIncorreto = metodos_css_1.MetodosCss[index].replace(metodos_css_1.MetodosCss[index][0], '');
|
|
1888
|
+
expect(() => {
|
|
1889
|
+
new seletor_valor_reverso_1.SeletorValorReverso(metodoIncorreto, []);
|
|
1890
|
+
}).toThrow(`O valor \'${metodoIncorreto}\' não foi encontrado.`);
|
|
1891
|
+
}
|
|
1894
1892
|
});
|
|
1895
1893
|
});
|
|
1896
1894
|
//# sourceMappingURL=metodos-reversos.test.js.map
|