@designliquido/foles 0.6.3 → 0.7.0
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/avaliador-sintatico/avaliador-sintatico.js +347 -0
- package/fontes/avaliador-sintatico/avaliador-sintatico.js.map +1 -1
- package/fontes/lexador/palavras-reservadas/foles.d.ts +23 -0
- package/fontes/lexador/palavras-reservadas/foles.js +23 -0
- package/fontes/lexador/palavras-reservadas/foles.js.map +1 -1
- package/fontes/modificadores/transformar.js +2 -1
- package/fontes/modificadores/transformar.js.map +1 -1
- package/fontes/valores/dicionario-valores.js +41 -0
- package/fontes/valores/dicionario-valores.js.map +1 -1
- package/fontes/valores/metodos/escalamento-3d.d.ts +10 -0
- package/fontes/valores/metodos/escalamento-3d.js +18 -0
- package/fontes/valores/metodos/escalamento-3d.js.map +1 -0
- package/fontes/valores/metodos/escalamento-eixo-z.d.ts +8 -0
- package/fontes/valores/metodos/escalamento-eixo-z.js +16 -0
- package/fontes/valores/metodos/escalamento-eixo-z.js.map +1 -0
- package/fontes/valores/metodos/escalamento-horizontal.d.ts +8 -0
- package/fontes/valores/metodos/escalamento-horizontal.js +16 -0
- package/fontes/valores/metodos/escalamento-horizontal.js.map +1 -0
- package/fontes/valores/metodos/escalamento-vertical.d.ts +8 -0
- package/fontes/valores/metodos/escalamento-vertical.js +16 -0
- package/fontes/valores/metodos/escalamento-vertical.js.map +1 -0
- package/fontes/valores/metodos/escalamento.d.ts +9 -0
- package/fontes/valores/metodos/escalamento.js +20 -0
- package/fontes/valores/metodos/escalamento.js.map +1 -0
- package/fontes/valores/metodos/inclinar-horizontal.d.ts +9 -0
- package/fontes/valores/metodos/inclinar-horizontal.js +20 -0
- package/fontes/valores/metodos/inclinar-horizontal.js.map +1 -0
- package/fontes/valores/metodos/inclinar-vertical.d.ts +9 -0
- package/fontes/valores/metodos/inclinar-vertical.js +20 -0
- package/fontes/valores/metodos/inclinar-vertical.js.map +1 -0
- package/fontes/valores/metodos/inclinar.d.ts +11 -0
- package/fontes/valores/metodos/inclinar.js +25 -0
- package/fontes/valores/metodos/inclinar.js.map +1 -0
- package/fontes/valores/metodos/perspectivar.d.ts +9 -0
- package/fontes/valores/metodos/perspectivar.js +20 -0
- package/fontes/valores/metodos/perspectivar.js.map +1 -0
- package/fontes/valores/metodos/rotacionar-eixo-z.d.ts +9 -0
- package/fontes/valores/metodos/rotacionar-eixo-z.js +20 -0
- package/fontes/valores/metodos/rotacionar-eixo-z.js.map +1 -0
- package/fontes/valores/metodos/rotacionar-horizontal.d.ts +9 -0
- package/fontes/valores/metodos/rotacionar-horizontal.js +20 -0
- package/fontes/valores/metodos/rotacionar-horizontal.js.map +1 -0
- package/fontes/valores/metodos/rotacionar-vertical.d.ts +9 -0
- package/fontes/valores/metodos/rotacionar-vertical.js +20 -0
- package/fontes/valores/metodos/rotacionar-vertical.js.map +1 -0
- package/fontes/valores/metodos/rotacionar.d.ts +9 -0
- package/fontes/valores/metodos/rotacionar.js +20 -0
- package/fontes/valores/metodos/rotacionar.js.map +1 -0
- package/fontes/valores/metodos/translacao-3d.d.ts +13 -0
- package/fontes/valores/metodos/translacao-3d.js +42 -0
- package/fontes/valores/metodos/translacao-3d.js.map +1 -0
- package/fontes/valores/metodos/translacao-eixo-z.d.ts +9 -0
- package/fontes/valores/metodos/translacao-eixo-z.js +20 -0
- package/fontes/valores/metodos/translacao-eixo-z.js.map +1 -0
- package/fontes/valores/metodos/translacao-horizontal.d.ts +9 -0
- package/fontes/valores/metodos/translacao-horizontal.js +20 -0
- package/fontes/valores/metodos/translacao-horizontal.js.map +1 -0
- package/fontes/valores/metodos/translacao-vertical.d.ts +9 -0
- package/fontes/valores/metodos/translacao-vertical.js +20 -0
- package/fontes/valores/metodos/translacao-vertical.js.map +1 -0
- package/fontes/valores/metodos/translacao.d.ts +11 -0
- package/fontes/valores/metodos/translacao.js +25 -0
- package/fontes/valores/metodos/translacao.js.map +1 -0
- package/package.json +1 -1
- package/testes/listas/metodos.d.ts +5 -0
- package/testes/listas/metodos.js +17 -1
- package/testes/listas/metodos.js.map +1 -1
- package/testes/modificadores/metodos.test.js +1176 -178
- package/testes/modificadores/metodos.test.js.map +1 -1
|
@@ -276,6 +276,198 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
276
276
|
}
|
|
277
277
|
}
|
|
278
278
|
});
|
|
279
|
+
it('Atribuindo Método "escalamento()"', () => {
|
|
280
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
281
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
282
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
283
|
+
// Lexador
|
|
284
|
+
const resultadoLexador = lexador.mapear([
|
|
285
|
+
"lmht {",
|
|
286
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento(${valoresAceitos[valIndex]});`,
|
|
287
|
+
"}"
|
|
288
|
+
]);
|
|
289
|
+
// O Lexador não deve encontrar erros
|
|
290
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
291
|
+
// O valor recebido deve ser mapeado como METODO
|
|
292
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
293
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
294
|
+
]));
|
|
295
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
296
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
297
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
298
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
299
|
+
]));
|
|
300
|
+
// Avaliador Sintático
|
|
301
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
302
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
303
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
304
|
+
// Tradutor
|
|
305
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
306
|
+
// O Tradutor deve serializar de acordo e traduzir escalamento para scale
|
|
307
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
308
|
+
expect(resultadoTradutor).toContain(`scale(${valoresAceitos[valIndex]});`);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
});
|
|
312
|
+
it('Atribuindo Método "escalamento()" com múltiplos valores', () => {
|
|
313
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
314
|
+
// Lexador
|
|
315
|
+
const resultadoLexador = lexador.mapear([
|
|
316
|
+
"lmht {",
|
|
317
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento(1.3, 0.4);`,
|
|
318
|
+
"}"
|
|
319
|
+
]);
|
|
320
|
+
// O Lexador não deve encontrar erros
|
|
321
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
322
|
+
// O valor recebido deve ser mapeado como METODO
|
|
323
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
324
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
325
|
+
]));
|
|
326
|
+
// O Lexador deve montar um objeto de comprimento 12
|
|
327
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
328
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
329
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
330
|
+
]));
|
|
331
|
+
// Avaliador Sintático
|
|
332
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
333
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
334
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
335
|
+
// Tradutor
|
|
336
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
337
|
+
// O Tradutor deve serializar de acordo e traduzir escalamento para scale
|
|
338
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
339
|
+
expect(resultadoTradutor).toContain(`scale(1.3, 0.4);`);
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
it('Atribuindo Método "escalamento-3d()"', () => {
|
|
343
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
344
|
+
// Lexador
|
|
345
|
+
const resultadoLexador = lexador.mapear([
|
|
346
|
+
"lmht {",
|
|
347
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento-3d(0.5, 1, 1.7);`,
|
|
348
|
+
"}"
|
|
349
|
+
]);
|
|
350
|
+
// O Lexador não deve encontrar erros
|
|
351
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
352
|
+
// O valor recebido deve ser mapeado como METODO
|
|
353
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
354
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
355
|
+
]));
|
|
356
|
+
// O Lexador deve montar um objeto de comprimento 14
|
|
357
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
358
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
359
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
360
|
+
]));
|
|
361
|
+
// Avaliador Sintático
|
|
362
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
363
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
364
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
365
|
+
// Tradutor
|
|
366
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
367
|
+
// O Tradutor deve serializar de acordo e traduzir escalamento-3d para scale3d
|
|
368
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
369
|
+
expect(resultadoTradutor).toContain(`scale3d(0.5, 1, 1.7);`);
|
|
370
|
+
}
|
|
371
|
+
});
|
|
372
|
+
it('Atribuindo Método "escalamento-eixo-z()"', () => {
|
|
373
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
374
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
375
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
376
|
+
// Lexador
|
|
377
|
+
const resultadoLexador = lexador.mapear([
|
|
378
|
+
"lmht {",
|
|
379
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento-eixo-z(${valoresAceitos[valIndex]});`,
|
|
380
|
+
"}"
|
|
381
|
+
]);
|
|
382
|
+
// O Lexador não deve encontrar erros
|
|
383
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
384
|
+
// O valor recebido deve ser mapeado como METODO
|
|
385
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
386
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
387
|
+
]));
|
|
388
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
389
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
390
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
391
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
392
|
+
]));
|
|
393
|
+
// Avaliador Sintático
|
|
394
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
395
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
396
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
397
|
+
// Tradutor
|
|
398
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
399
|
+
// O Tradutor deve serializar de acordo e traduzir escalamento-eixo-z para scaleZ
|
|
400
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
401
|
+
expect(resultadoTradutor).toContain(`scaleZ(${valoresAceitos[valIndex]});`);
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
});
|
|
405
|
+
it('Atribuindo Método "escalamento-horizontal()"', () => {
|
|
406
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
407
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
408
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
409
|
+
// Lexador
|
|
410
|
+
const resultadoLexador = lexador.mapear([
|
|
411
|
+
"lmht {",
|
|
412
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento-horizontal(${valoresAceitos[valIndex]});`,
|
|
413
|
+
"}"
|
|
414
|
+
]);
|
|
415
|
+
// O Lexador não deve encontrar erros
|
|
416
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
417
|
+
// O valor recebido deve ser mapeado como METODO
|
|
418
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
419
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
420
|
+
]));
|
|
421
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
422
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
423
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
424
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
425
|
+
]));
|
|
426
|
+
// Avaliador Sintático
|
|
427
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
428
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
429
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
430
|
+
// Tradutor
|
|
431
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
432
|
+
// O Tradutor deve serializar de acordo e traduzir escalamento-horizontal para scaleX
|
|
433
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
434
|
+
expect(resultadoTradutor).toContain(`scaleX(${valoresAceitos[valIndex]});`);
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
it('Atribuindo Método "escalamento-vertical()"', () => {
|
|
439
|
+
for (let index = 0; index < metodos_1.MetodosEscalamento.length; index += 1) {
|
|
440
|
+
const valoresAceitos = ['0.1', '0', '1', '1.75'];
|
|
441
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
442
|
+
// Lexador
|
|
443
|
+
const resultadoLexador = lexador.mapear([
|
|
444
|
+
"lmht {",
|
|
445
|
+
`${metodos_1.MetodosEscalamento[index]}: escalamento-vertical(${valoresAceitos[valIndex]});`,
|
|
446
|
+
"}"
|
|
447
|
+
]);
|
|
448
|
+
// O Lexador não deve encontrar erros
|
|
449
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
450
|
+
// O valor recebido deve ser mapeado como METODO
|
|
451
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
452
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
453
|
+
]));
|
|
454
|
+
// O Lexador deve montar um objeto de comprimento 10
|
|
455
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
456
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
457
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
458
|
+
]));
|
|
459
|
+
// Avaliador Sintático
|
|
460
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
461
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
462
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
463
|
+
// Tradutor
|
|
464
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
465
|
+
// O Tradutor deve serializar de acordo e traduzir escalamento-vertical para scaleY
|
|
466
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosEscalamento[index]]);
|
|
467
|
+
expect(resultadoTradutor).toContain(`scaleY(${valoresAceitos[valIndex]});`);
|
|
468
|
+
}
|
|
469
|
+
}
|
|
470
|
+
});
|
|
279
471
|
it('Atribuindo Método "gradiente-linear()" com valor de ângulo', () => {
|
|
280
472
|
for (let index = 0; index < metodos_1.MetodoGradienteLinear.length; index += 1) {
|
|
281
473
|
// Lexador
|
|
@@ -353,14 +545,14 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
353
545
|
}
|
|
354
546
|
}
|
|
355
547
|
});
|
|
356
|
-
it('Atribuindo Método "
|
|
357
|
-
for (let index = 0; index < metodos_1.
|
|
358
|
-
const valoresAceitos = ['
|
|
548
|
+
it('Atribuindo Método "inclinar()"', () => {
|
|
549
|
+
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
550
|
+
const valoresAceitos = ['18deg', '3.142rad', '0', '1'];
|
|
359
551
|
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
360
552
|
// Lexador
|
|
361
553
|
const resultadoLexador = lexador.mapear([
|
|
362
554
|
"lmht {",
|
|
363
|
-
`${metodos_1.
|
|
555
|
+
`${metodos_1.MetodosInclinar[index]}: inclinar(${valoresAceitos[valIndex]});`,
|
|
364
556
|
"}"
|
|
365
557
|
]);
|
|
366
558
|
// O Lexador não deve encontrar erros
|
|
@@ -386,31 +578,31 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
386
578
|
// Avaliador Sintático
|
|
387
579
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
388
580
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
389
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
581
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
390
582
|
// Tradutor
|
|
391
583
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
392
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
393
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
394
|
-
expect(resultadoTradutor).toContain(`
|
|
584
|
+
// O Tradutor deve serializar de acordo e traduzir inclinar para skew
|
|
585
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
586
|
+
expect(resultadoTradutor).toContain(`skew(${valoresAceitos[valIndex]});`);
|
|
395
587
|
}
|
|
396
588
|
}
|
|
397
589
|
});
|
|
398
|
-
it('Atribuindo Método "
|
|
399
|
-
for (let index = 0; index < metodos_1.
|
|
590
|
+
it('Atribuindo Método "inclinar() com múltiplos valores"', () => {
|
|
591
|
+
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
400
592
|
// Lexador
|
|
401
593
|
const resultadoLexador = lexador.mapear([
|
|
402
594
|
"lmht {",
|
|
403
|
-
`${metodos_1.
|
|
595
|
+
`${metodos_1.MetodosInclinar[index]}: inclinar(15deg, 15deg);`,
|
|
404
596
|
"}"
|
|
405
597
|
]);
|
|
406
|
-
// O Lexador deve
|
|
407
|
-
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
598
|
+
// O Lexador não deve encontrar erros
|
|
408
599
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
409
600
|
// O valor recebido deve ser mapeado como METODO
|
|
410
601
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
411
602
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
412
603
|
]));
|
|
413
|
-
// O Lexador
|
|
604
|
+
// O Lexador deve montar um objeto de comprimento 14
|
|
605
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
414
606
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
415
607
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
416
608
|
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
@@ -418,58 +610,864 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
418
610
|
// Avaliador Sintático
|
|
419
611
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
420
612
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
421
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
613
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
422
614
|
// Tradutor
|
|
423
615
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
424
|
-
|
|
425
|
-
expect(resultadoTradutor).toContain(
|
|
616
|
+
// O Tradutor deve serializar de acordo e traduzir inclinar para skew
|
|
617
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
618
|
+
expect(resultadoTradutor).toContain(`skew(15deg, 15deg);`);
|
|
619
|
+
}
|
|
620
|
+
});
|
|
621
|
+
it('Atribuindo Método "inclinar-horizontal()"', () => {
|
|
622
|
+
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
623
|
+
const valoresAceitos = ['18deg', '3.142rad', '0', '1'];
|
|
624
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
625
|
+
// Lexador
|
|
626
|
+
const resultadoLexador = lexador.mapear([
|
|
627
|
+
"lmht {",
|
|
628
|
+
`${metodos_1.MetodosInclinar[index]}: inclinar-horizontal(${valoresAceitos[valIndex]});`,
|
|
629
|
+
"}"
|
|
630
|
+
]);
|
|
631
|
+
// O Lexador não deve encontrar erros
|
|
632
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
633
|
+
// O valor recebido deve ser mapeado como METODO
|
|
634
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
635
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
636
|
+
]));
|
|
637
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
638
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
639
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
640
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
641
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
642
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
643
|
+
]));
|
|
644
|
+
}
|
|
645
|
+
else {
|
|
646
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
647
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
648
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
649
|
+
]));
|
|
650
|
+
}
|
|
651
|
+
// Avaliador Sintático
|
|
652
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
653
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
654
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
655
|
+
// Tradutor
|
|
656
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
657
|
+
// O Tradutor deve serializar de acordo e traduzir inclinar-horizontal para skewX
|
|
658
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
659
|
+
expect(resultadoTradutor).toContain(`skewX(${valoresAceitos[valIndex]});`);
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
});
|
|
663
|
+
it('Atribuindo Método "inclinar-vertical()"', () => {
|
|
664
|
+
for (let index = 0; index < metodos_1.MetodosInclinar.length; index += 1) {
|
|
665
|
+
const valoresAceitos = ['18deg', '3.142rad', '0', '1'];
|
|
666
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
667
|
+
// Lexador
|
|
668
|
+
const resultadoLexador = lexador.mapear([
|
|
669
|
+
"lmht {",
|
|
670
|
+
`${metodos_1.MetodosInclinar[index]}: inclinar-vertical(${valoresAceitos[valIndex]});`,
|
|
671
|
+
"}"
|
|
672
|
+
]);
|
|
673
|
+
// O Lexador não deve encontrar erros
|
|
674
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
675
|
+
// O valor recebido deve ser mapeado como METODO
|
|
676
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
677
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
678
|
+
]));
|
|
679
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
680
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
681
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
682
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
683
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
684
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
685
|
+
]));
|
|
686
|
+
}
|
|
687
|
+
else {
|
|
688
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
689
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
690
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
691
|
+
]));
|
|
692
|
+
}
|
|
693
|
+
// Avaliador Sintático
|
|
694
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
695
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
696
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
697
|
+
// Tradutor
|
|
698
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
699
|
+
// O Tradutor deve serializar de acordo e traduzir inclinar-vertical para skewY
|
|
700
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosInclinar[index]]);
|
|
701
|
+
expect(resultadoTradutor).toContain(`skewY(${valoresAceitos[valIndex]});`);
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
});
|
|
705
|
+
it('Atribuindo Método "inverter()"', () => {
|
|
706
|
+
for (let index = 0; index < metodos_1.MetodoInverter.length; index += 1) {
|
|
707
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
708
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
709
|
+
// Lexador
|
|
710
|
+
const resultadoLexador = lexador.mapear([
|
|
711
|
+
"lmht {",
|
|
712
|
+
`${metodos_1.MetodoInverter[index]}: inverter(${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: foles_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 === 0 || valIndex === 1) {
|
|
723
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
724
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
725
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
726
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
727
|
+
]));
|
|
728
|
+
}
|
|
729
|
+
else {
|
|
730
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
731
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
732
|
+
expect.objectContaining({ tipo: foles_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[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoInverter[index]]);
|
|
739
|
+
// Tradutor
|
|
740
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
741
|
+
// O Tradutor deve serializar de acordo e traduzir inverter para invert
|
|
742
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoInverter[index]]);
|
|
743
|
+
expect(resultadoTradutor).toContain(`invert(${valoresAceitos[valIndex]});`);
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
});
|
|
747
|
+
it('Atribuindo Método "limitar" (clamp)', () => {
|
|
748
|
+
for (let index = 0; index < metodos_1.MetodoLimitar.length; index += 1) {
|
|
749
|
+
// Lexador
|
|
750
|
+
const resultadoLexador = lexador.mapear([
|
|
751
|
+
"lmht {",
|
|
752
|
+
`${metodos_1.MetodoLimitar[index]}: limitar(10vw, 20em, 100vw);`,
|
|
753
|
+
"}"
|
|
754
|
+
]);
|
|
755
|
+
// O Lexador deve montar um objeto de comprimento 17 sem retornar nenhum erro
|
|
756
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
757
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
758
|
+
// O valor recebido deve ser mapeado como METODO
|
|
759
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
760
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
761
|
+
]));
|
|
762
|
+
// O Lexador também deve encontrar números e quantificadores no mapeamento
|
|
763
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
764
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
765
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
766
|
+
]));
|
|
767
|
+
// Avaliador Sintático
|
|
768
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
769
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
770
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoLimitar[index]]);
|
|
771
|
+
// Tradutor
|
|
772
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
773
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoLimitar[index]]);
|
|
774
|
+
expect(resultadoTradutor).toContain('clamp(10vw, 20em, 100vw);');
|
|
775
|
+
}
|
|
776
|
+
});
|
|
777
|
+
it('Atribuindo Método "linear()"', () => {
|
|
778
|
+
for (let index = 0; index < metodos_1.MetodoLinear.length; index += 1) {
|
|
779
|
+
// Lexador
|
|
780
|
+
const resultadoLexador = lexador.mapear([
|
|
781
|
+
"lmht {",
|
|
782
|
+
`${metodos_1.MetodoLinear[index]}: linear(0, 0.25, 1);`,
|
|
783
|
+
"}"
|
|
784
|
+
]);
|
|
785
|
+
// O Lexador deve montar um objeto de comprimento 14 sem retornar nenhum erro
|
|
786
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
787
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
788
|
+
// O valor recebido deve ser mapeado como METODO
|
|
789
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
790
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
791
|
+
]));
|
|
792
|
+
// O Lexador também deve encontrar números no mapeamento
|
|
793
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
794
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
795
|
+
]));
|
|
796
|
+
// Avaliador Sintático
|
|
797
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
798
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
799
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoLinear[index]]);
|
|
800
|
+
// // // // Tradutor
|
|
801
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
802
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoLinear[index]]);
|
|
803
|
+
expect(resultadoTradutor).toContain('linear(0, 0.25, 1);');
|
|
804
|
+
}
|
|
805
|
+
});
|
|
806
|
+
it('Atribuindo Método "minmax()"', () => {
|
|
807
|
+
for (let index = 0; index < metodos_1.MetodoMinMax.length; index += 1) {
|
|
808
|
+
// Lexador
|
|
809
|
+
const resultadoLexador = lexador.mapear([
|
|
810
|
+
"lmht {",
|
|
811
|
+
`${metodos_1.MetodoMinMax[index]}: minmax(100px, conteúdo-máximo);`,
|
|
812
|
+
"}"
|
|
813
|
+
]);
|
|
814
|
+
// O Lexador deve montar um objeto de comprimento 13 sem retornar nenhum erro
|
|
815
|
+
expect(resultadoLexador.simbolos).toHaveLength(13);
|
|
816
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
817
|
+
// O valor recebido deve ser mapeado como METODO
|
|
818
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
819
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
820
|
+
]));
|
|
821
|
+
// O Lexador também deve encontrar número e quantificador no mapeamento
|
|
822
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
823
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
824
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
825
|
+
]));
|
|
826
|
+
// Avaliador Sintático
|
|
827
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
828
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
829
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoMinMax[index]]);
|
|
830
|
+
// // // // Tradutor
|
|
831
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
832
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoMinMax[index]]);
|
|
833
|
+
expect(resultadoTradutor).toContain('minmax(100px, max-content);');
|
|
834
|
+
}
|
|
835
|
+
});
|
|
836
|
+
it('Atribuindo Método "opacar()"', () => {
|
|
837
|
+
for (let index = 0; index < metodos_1.MetodoOpacar.length; index += 1) {
|
|
838
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
839
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
840
|
+
// Lexador
|
|
841
|
+
const resultadoLexador = lexador.mapear([
|
|
842
|
+
"lmht {",
|
|
843
|
+
`${metodos_1.MetodoOpacar[index]}: opacar(${valoresAceitos[valIndex]});`,
|
|
844
|
+
"}"
|
|
845
|
+
]);
|
|
846
|
+
// O Lexador não deve encontrar erros
|
|
847
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
848
|
+
// O valor recebido deve ser mapeado como METODO
|
|
849
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
850
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
851
|
+
]));
|
|
852
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
853
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
854
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
855
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
856
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
857
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
858
|
+
]));
|
|
859
|
+
}
|
|
860
|
+
else {
|
|
861
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
862
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
863
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
864
|
+
]));
|
|
865
|
+
}
|
|
866
|
+
// Avaliador Sintático
|
|
867
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
868
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
869
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoOpacar[index]]);
|
|
870
|
+
// Tradutor
|
|
871
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
872
|
+
// O Tradutor deve serializar de acordo e traduzir opacar para opacity
|
|
873
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoOpacar[index]]);
|
|
874
|
+
expect(resultadoTradutor).toContain(`opacity(${valoresAceitos[valIndex]});`);
|
|
875
|
+
}
|
|
876
|
+
}
|
|
877
|
+
});
|
|
878
|
+
it('Atribuindo Método "passos" (steps)', () => {
|
|
879
|
+
for (let index = 0; index < metodos_1.MetodoPassos.length; index += 1) {
|
|
880
|
+
// Lexador
|
|
881
|
+
const resultadoLexador = lexador.mapear([
|
|
882
|
+
"lmht {",
|
|
883
|
+
`${metodos_1.MetodoPassos[index]}: passos(2, salto-inicial);`,
|
|
884
|
+
"}"
|
|
885
|
+
]);
|
|
886
|
+
// O Lexador deve montar um objeto de comprimento 12 sem retornar nenhum erro
|
|
887
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
888
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
889
|
+
// O valor recebido deve ser mapeado como METODO
|
|
890
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
891
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
892
|
+
]));
|
|
893
|
+
// O Lexador também deve encontrar número e qualitativo no mapeamento
|
|
894
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
895
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
896
|
+
expect.objectContaining({ tipo: foles_1.default.QUALITATIVO }),
|
|
897
|
+
]));
|
|
898
|
+
// Avaliador Sintático
|
|
899
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
900
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
901
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPassos[index]]);
|
|
902
|
+
// // // // Tradutor
|
|
903
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
904
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPassos[index]]);
|
|
905
|
+
expect(resultadoTradutor).toContain('steps(2, jump-start);');
|
|
906
|
+
}
|
|
907
|
+
});
|
|
908
|
+
it('Atribuindo Método "perspectivar()"', () => {
|
|
909
|
+
for (let index = 0; index < metodos_1.MetodoPerspectivar.length; index += 1) {
|
|
910
|
+
const valoresAceitos = ['800px', '6.5cm', '0.1', '0', '1', '1.75', 'nenhuma'];
|
|
911
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
912
|
+
// Lexador
|
|
913
|
+
const resultadoLexador = lexador.mapear([
|
|
914
|
+
"lmht {",
|
|
915
|
+
`${metodos_1.MetodoPerspectivar[index]}: perspectivar(${valoresAceitos[valIndex]});`,
|
|
916
|
+
"}"
|
|
917
|
+
]);
|
|
918
|
+
// O Lexador não deve encontrar erros
|
|
919
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
920
|
+
// O valor recebido deve ser mapeado como METODO
|
|
921
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
922
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
923
|
+
]));
|
|
924
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
925
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
926
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
927
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
928
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
929
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
930
|
+
]));
|
|
931
|
+
}
|
|
932
|
+
else if (valIndex !== 6) {
|
|
933
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
934
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
935
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
936
|
+
]));
|
|
937
|
+
}
|
|
938
|
+
else {
|
|
939
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
940
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
941
|
+
expect.objectContaining({ tipo: foles_1.default.IDENTIFICADOR }),
|
|
942
|
+
]));
|
|
943
|
+
}
|
|
944
|
+
// Avaliador Sintático
|
|
945
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
946
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
947
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPerspectivar[index]]);
|
|
948
|
+
// Tradutor
|
|
949
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
950
|
+
// O Tradutor deve serializar de acordo e traduzir perspectivar para perspective
|
|
951
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPerspectivar[index]]);
|
|
952
|
+
expect(resultadoTradutor).toContain(`perspective(${valoresAceitos[valIndex]});`);
|
|
953
|
+
}
|
|
954
|
+
}
|
|
955
|
+
});
|
|
956
|
+
it('Atribuindo Método "projetar-sombra()" com valores de comprimento somente', () => {
|
|
957
|
+
for (let index = 0; index < metodos_1.MetodoProjetarSombra.length; index += 1) {
|
|
958
|
+
const comprimentos = ['15px 15px', '15px 15px 15px', '0.5rem 0.5rem', '0.5rem 0.5rem 1rem'];
|
|
959
|
+
for (let posIndex = 0; posIndex < comprimentos.length; posIndex += 1) {
|
|
960
|
+
// Lexador
|
|
961
|
+
const resultadoLexador = lexador.mapear([
|
|
962
|
+
"lmht {",
|
|
963
|
+
`${metodos_1.MetodoProjetarSombra[index]}: projetar-sombra(${comprimentos[posIndex]});`,
|
|
964
|
+
"}"
|
|
965
|
+
]);
|
|
966
|
+
// O Lexador deve montar um objeto de acordo, sem retornar nenhum erro
|
|
967
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
968
|
+
// O valor recebido deve ser mapeado como METODO
|
|
969
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
970
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
971
|
+
]));
|
|
972
|
+
// O Lexador também deve sempre encontrar valores e quantificadores na operação
|
|
973
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
974
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
975
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
976
|
+
]));
|
|
977
|
+
// Avaliador Sintático
|
|
978
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
979
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
980
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
981
|
+
// Tradutor
|
|
982
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
983
|
+
// O Tradutor deve serializar de acordo e traduzir projetar-sombra para drop-shadow
|
|
984
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
985
|
+
expect(resultadoTradutor).toContain(`drop-shadow(${comprimentos[posIndex]});`);
|
|
986
|
+
}
|
|
987
|
+
}
|
|
988
|
+
});
|
|
989
|
+
it('Atribuindo Método "projetar-sombra()" com valores de cor e de comprimento', () => {
|
|
990
|
+
for (let index = 0; index < metodos_1.MetodoProjetarSombra.length; index += 1) {
|
|
991
|
+
const comprimentos = ['15px 15px vermelho', '15px 15px 15px vermelho', 'vermelho 0.5rem 0.5rem', 'vermelho 0.5rem 0.5rem 1rem'];
|
|
992
|
+
for (let posIndex = 0; posIndex < comprimentos.length; posIndex += 1) {
|
|
993
|
+
// Lexador
|
|
994
|
+
const resultadoLexador = lexador.mapear([
|
|
995
|
+
"lmht {",
|
|
996
|
+
`${metodos_1.MetodoProjetarSombra[index]}: projetar-sombra(${comprimentos[posIndex]});`,
|
|
997
|
+
"}"
|
|
998
|
+
]);
|
|
999
|
+
// O Lexador deve montar um objeto de acordo, sem retornar nenhum erro
|
|
1000
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1001
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1002
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1003
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1004
|
+
]));
|
|
1005
|
+
// O Lexador também deve sempre encontrar valores e quantificadores na operação
|
|
1006
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1007
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1008
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1009
|
+
]));
|
|
1010
|
+
// Avaliador Sintático
|
|
1011
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1012
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1013
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1014
|
+
// Tradutor
|
|
1015
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1016
|
+
// O Tradutor deve serializar de acordo e traduzir vermelho para red
|
|
1017
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoProjetarSombra[index]]);
|
|
1018
|
+
expect(resultadoTradutor).toContain('red');
|
|
1019
|
+
}
|
|
1020
|
+
}
|
|
1021
|
+
});
|
|
1022
|
+
it('Atribuindo Método "raio()" com valores de posição e número/quantificador', () => {
|
|
1023
|
+
for (let index = 0; index < metodos_1.MetodoRaio.length; index += 1) {
|
|
1024
|
+
const valoresAceitos = ['lado-mais-próximo', 'lado-mais-proximo', 'canto-mais-próximo', 'canto-mais-proximo', 'lado-mais-distante', 'canto-mais-distante', 'lados', 'conter'];
|
|
1025
|
+
const traducaoValoresAceitos = ['closest-side', 'closest-side', 'closest-corner', 'closest-corner', 'farthest-side', 'farthest-corner', 'sides', 'contain'];
|
|
1026
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1027
|
+
// Lexador
|
|
1028
|
+
const resultadoLexador = lexador.mapear([
|
|
1029
|
+
"lmht {",
|
|
1030
|
+
`${metodos_1.MetodoRaio[index]}: raio(${valoresAceitos[valIndex]} 200deg);`,
|
|
1031
|
+
"}"
|
|
1032
|
+
]);
|
|
1033
|
+
// O Lexador não deve encontrar erros
|
|
1034
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1035
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1036
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1037
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1038
|
+
]));
|
|
1039
|
+
// O Lexador deve montar um objeto de comprimento 12
|
|
1040
|
+
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
1041
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1042
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1043
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1044
|
+
]));
|
|
1045
|
+
// Avaliador Sintático
|
|
1046
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1047
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1048
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1049
|
+
// Tradutor
|
|
1050
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1051
|
+
// O Tradutor deve serializar de acordo e traduzir raio para ray
|
|
1052
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1053
|
+
expect(resultadoTradutor).toContain(`ray(${traducaoValoresAceitos[valIndex]} 200deg);`);
|
|
1054
|
+
}
|
|
1055
|
+
}
|
|
1056
|
+
});
|
|
1057
|
+
it('Atribuindo Método "raio()" com somente número/quantificador', () => {
|
|
1058
|
+
for (let index = 0; index < metodos_1.MetodoRaio.length; index += 1) {
|
|
1059
|
+
// Lexador
|
|
1060
|
+
const resultadoLexador = lexador.mapear([
|
|
1061
|
+
"lmht {",
|
|
1062
|
+
`${metodos_1.MetodoRaio[index]}: raio(200deg);`,
|
|
1063
|
+
"}"
|
|
1064
|
+
]);
|
|
1065
|
+
// O Lexador não deve encontrar erros
|
|
1066
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1067
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1068
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1069
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1070
|
+
]));
|
|
1071
|
+
// O Lexador deve montar um objeto de comprimento 11
|
|
1072
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1073
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1074
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1075
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1076
|
+
]));
|
|
1077
|
+
// Avaliador Sintático
|
|
1078
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1079
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1080
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1081
|
+
// Tradutor
|
|
1082
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1083
|
+
// O Tradutor deve serializar de acordo e traduzir raio para ray
|
|
1084
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
1085
|
+
expect(resultadoTradutor).toContain(`ray(200deg);`);
|
|
1086
|
+
}
|
|
1087
|
+
});
|
|
1088
|
+
it('Atribuindo Método "rotacionar()"', () => {
|
|
1089
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1090
|
+
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1091
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1092
|
+
// Lexador
|
|
1093
|
+
const resultadoLexador = lexador.mapear([
|
|
1094
|
+
"lmht {",
|
|
1095
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar(${valoresAceitos[valIndex]});`,
|
|
1096
|
+
"}"
|
|
1097
|
+
]);
|
|
1098
|
+
// O Lexador não deve encontrar erros
|
|
1099
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1100
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1101
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1102
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1103
|
+
]));
|
|
1104
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1105
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1106
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1107
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1108
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1109
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1110
|
+
]));
|
|
1111
|
+
}
|
|
1112
|
+
else {
|
|
1113
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1114
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1115
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1116
|
+
]));
|
|
1117
|
+
}
|
|
1118
|
+
// Avaliador Sintático
|
|
1119
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1120
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1121
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1122
|
+
// Tradutor
|
|
1123
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1124
|
+
// O Tradutor deve serializar de acordo e traduzir rotacionar para rotate
|
|
1125
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1126
|
+
expect(resultadoTradutor).toContain(`rotate(${valoresAceitos[valIndex]});`);
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
});
|
|
1130
|
+
it('Atribuindo Método "rotacionar-eixo-z()"', () => {
|
|
1131
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1132
|
+
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1133
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1134
|
+
// Lexador
|
|
1135
|
+
const resultadoLexador = lexador.mapear([
|
|
1136
|
+
"lmht {",
|
|
1137
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar-eixo-z(${valoresAceitos[valIndex]});`,
|
|
1138
|
+
"}"
|
|
1139
|
+
]);
|
|
1140
|
+
// O Lexador não deve encontrar erros
|
|
1141
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1142
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1143
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1144
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1145
|
+
]));
|
|
1146
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1147
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1148
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1149
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1150
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1151
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1152
|
+
]));
|
|
1153
|
+
}
|
|
1154
|
+
else {
|
|
1155
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1156
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1157
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1158
|
+
]));
|
|
1159
|
+
}
|
|
1160
|
+
// Avaliador Sintático
|
|
1161
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1162
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1163
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1164
|
+
// Tradutor
|
|
1165
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1166
|
+
// O Tradutor deve serializar de acordo e traduzir rotacionar-eixo-z para rotateZ
|
|
1167
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1168
|
+
expect(resultadoTradutor).toContain(`rotateZ(${valoresAceitos[valIndex]});`);
|
|
1169
|
+
}
|
|
1170
|
+
}
|
|
1171
|
+
});
|
|
1172
|
+
it('Atribuindo Método "rotacionar-horizontal()"', () => {
|
|
1173
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1174
|
+
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1175
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1176
|
+
// Lexador
|
|
1177
|
+
const resultadoLexador = lexador.mapear([
|
|
1178
|
+
"lmht {",
|
|
1179
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar-horizontal(${valoresAceitos[valIndex]});`,
|
|
1180
|
+
"}"
|
|
1181
|
+
]);
|
|
1182
|
+
// O Lexador não deve encontrar erros
|
|
1183
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1184
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1185
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1186
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1187
|
+
]));
|
|
1188
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1189
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1190
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1191
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1192
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1193
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1194
|
+
]));
|
|
1195
|
+
}
|
|
1196
|
+
else {
|
|
1197
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1198
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1199
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1200
|
+
]));
|
|
1201
|
+
}
|
|
1202
|
+
// Avaliador Sintático
|
|
1203
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1204
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1205
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1206
|
+
// Tradutor
|
|
1207
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1208
|
+
// O Tradutor deve serializar de acordo e traduzir rotacionar-horizontal para rotateX
|
|
1209
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1210
|
+
expect(resultadoTradutor).toContain(`rotateX(${valoresAceitos[valIndex]});`);
|
|
1211
|
+
}
|
|
1212
|
+
}
|
|
1213
|
+
});
|
|
1214
|
+
it('Atribuindo Método "rotacionar-matiz()"', () => {
|
|
1215
|
+
for (let index = 0; index < metodos_1.MetodoRotacionarMatiz.length; index += 1) {
|
|
1216
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1217
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1218
|
+
// Lexador
|
|
1219
|
+
const resultadoLexador = lexador.mapear([
|
|
1220
|
+
"lmht {",
|
|
1221
|
+
`${metodos_1.MetodoRotacionarMatiz[index]}: rotacionar-matiz(${valoresAceitos[valIndex]});`,
|
|
1222
|
+
"}"
|
|
1223
|
+
]);
|
|
1224
|
+
// O Lexador não deve encontrar erros
|
|
1225
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1226
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1227
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1228
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1229
|
+
]));
|
|
1230
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1231
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1232
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1233
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1234
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1235
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1236
|
+
]));
|
|
1237
|
+
}
|
|
1238
|
+
else {
|
|
1239
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1240
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1241
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1242
|
+
]));
|
|
1243
|
+
}
|
|
1244
|
+
// Avaliador Sintático
|
|
1245
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1246
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1247
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRotacionarMatiz[index]]);
|
|
1248
|
+
// Tradutor
|
|
1249
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1250
|
+
// O Tradutor deve serializar de acordo e traduzir rotacionar-matiz para hue-rotate
|
|
1251
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRotacionarMatiz[index]]);
|
|
1252
|
+
expect(resultadoTradutor).toContain(`hue-rotate(${valoresAceitos[valIndex]});`);
|
|
1253
|
+
}
|
|
1254
|
+
}
|
|
1255
|
+
});
|
|
1256
|
+
it('Atribuindo Método "rotacionar-vertical()"', () => {
|
|
1257
|
+
for (let index = 0; index < metodos_1.MetodosRotacionar.length; index += 1) {
|
|
1258
|
+
const valoresAceitos = ['45deg', '3.142rad', '0.1', '0', '1', '1.75'];
|
|
1259
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1260
|
+
// Lexador
|
|
1261
|
+
const resultadoLexador = lexador.mapear([
|
|
1262
|
+
"lmht {",
|
|
1263
|
+
`${metodos_1.MetodosRotacionar[index]}: rotacionar-vertical(${valoresAceitos[valIndex]});`,
|
|
1264
|
+
"}"
|
|
1265
|
+
]);
|
|
1266
|
+
// O Lexador não deve encontrar erros
|
|
1267
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1268
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1269
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1270
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1271
|
+
]));
|
|
1272
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1273
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1274
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1275
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1276
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1277
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1278
|
+
]));
|
|
1279
|
+
}
|
|
1280
|
+
else {
|
|
1281
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1282
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1283
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1284
|
+
]));
|
|
1285
|
+
}
|
|
1286
|
+
// Avaliador Sintático
|
|
1287
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1288
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1289
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1290
|
+
// Tradutor
|
|
1291
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1292
|
+
// O Tradutor deve serializar de acordo e traduzir rotacionar-vertical para rotateY
|
|
1293
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosRotacionar[index]]);
|
|
1294
|
+
expect(resultadoTradutor).toContain(`rotateY(${valoresAceitos[valIndex]});`);
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
});
|
|
1298
|
+
it('Atribuindo Método "saturar()"', () => {
|
|
1299
|
+
for (let index = 0; index < metodos_1.MetodoSaturar.length; index += 1) {
|
|
1300
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1301
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1302
|
+
// Lexador
|
|
1303
|
+
const resultadoLexador = lexador.mapear([
|
|
1304
|
+
"lmht {",
|
|
1305
|
+
`${metodos_1.MetodoSaturar[index]}: saturar(${valoresAceitos[valIndex]});`,
|
|
1306
|
+
"}"
|
|
1307
|
+
]);
|
|
1308
|
+
// O Lexador não deve encontrar erros
|
|
1309
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1310
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1311
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1312
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1313
|
+
]));
|
|
1314
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1315
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1316
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1317
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1318
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1319
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1320
|
+
]));
|
|
1321
|
+
}
|
|
1322
|
+
else {
|
|
1323
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1324
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1325
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1326
|
+
]));
|
|
1327
|
+
}
|
|
1328
|
+
// Avaliador Sintático
|
|
1329
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1330
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1331
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSaturar[index]]);
|
|
1332
|
+
// Tradutor
|
|
1333
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1334
|
+
// O Tradutor deve serializar de acordo e traduzir saturar para saturate
|
|
1335
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSaturar[index]]);
|
|
1336
|
+
expect(resultadoTradutor).toContain(`saturate(${valoresAceitos[valIndex]});`);
|
|
1337
|
+
}
|
|
1338
|
+
}
|
|
1339
|
+
});
|
|
1340
|
+
it('Atribuindo Método "sepia()"', () => {
|
|
1341
|
+
for (let index = 0; index < metodos_1.MetodoSepia.length; index += 1) {
|
|
1342
|
+
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1343
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1344
|
+
// Lexador
|
|
1345
|
+
const resultadoLexador = lexador.mapear([
|
|
1346
|
+
"lmht {",
|
|
1347
|
+
`${metodos_1.MetodoSepia[index]}: sepia(${valoresAceitos[valIndex]});`,
|
|
1348
|
+
"}"
|
|
1349
|
+
]);
|
|
1350
|
+
// O Lexador não deve encontrar erros
|
|
1351
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1352
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1353
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1354
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1355
|
+
]));
|
|
1356
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1357
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1358
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1359
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1360
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1361
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1362
|
+
]));
|
|
1363
|
+
}
|
|
1364
|
+
else {
|
|
1365
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1366
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1367
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1368
|
+
]));
|
|
1369
|
+
}
|
|
1370
|
+
// Avaliador Sintático
|
|
1371
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1372
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1373
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSepia[index]]);
|
|
1374
|
+
// Tradutor
|
|
1375
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1376
|
+
// O Tradutor deve serializar de acordo e traduzir sépia para sepia
|
|
1377
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoSepia[index]]);
|
|
1378
|
+
expect(resultadoTradutor).toContain(`sepia(${valoresAceitos[valIndex]});`);
|
|
1379
|
+
}
|
|
1380
|
+
}
|
|
1381
|
+
});
|
|
1382
|
+
it('Atribuindo Método "translação()"', () => {
|
|
1383
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1384
|
+
const valoresAceitos = ['18deg', '3.142rad', '0', '1'];
|
|
1385
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
1386
|
+
// Lexador
|
|
1387
|
+
const resultadoLexador = lexador.mapear([
|
|
1388
|
+
"lmht {",
|
|
1389
|
+
`${metodos_1.MetodosTranslacao[index]}: translação(${valoresAceitos[valIndex]});`,
|
|
1390
|
+
"}"
|
|
1391
|
+
]);
|
|
1392
|
+
// O Lexador não deve encontrar erros
|
|
1393
|
+
expect(resultadoLexador.erros).toHaveLength(0);
|
|
1394
|
+
// O valor recebido deve ser mapeado como METODO
|
|
1395
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1396
|
+
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
1397
|
+
]));
|
|
1398
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1399
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1400
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1401
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1402
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1403
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1404
|
+
]));
|
|
1405
|
+
}
|
|
1406
|
+
else {
|
|
1407
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1408
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1409
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1410
|
+
]));
|
|
1411
|
+
}
|
|
1412
|
+
// Avaliador Sintático
|
|
1413
|
+
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
1414
|
+
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
1415
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1416
|
+
// Tradutor
|
|
1417
|
+
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
1418
|
+
// O Tradutor deve serializar de acordo e traduzir translação para translate
|
|
1419
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1420
|
+
expect(resultadoTradutor).toContain(`translate(${valoresAceitos[valIndex]});`);
|
|
1421
|
+
}
|
|
426
1422
|
}
|
|
427
1423
|
});
|
|
428
|
-
it('Atribuindo Método "
|
|
429
|
-
for (let index = 0; index < metodos_1.
|
|
1424
|
+
it('Atribuindo Método "translacao() com múltiplos valores"', () => {
|
|
1425
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
430
1426
|
// Lexador
|
|
431
1427
|
const resultadoLexador = lexador.mapear([
|
|
432
1428
|
"lmht {",
|
|
433
|
-
`${metodos_1.
|
|
1429
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao(3ch, 3mm);`,
|
|
434
1430
|
"}"
|
|
435
1431
|
]);
|
|
436
|
-
// O Lexador deve
|
|
437
|
-
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
1432
|
+
// O Lexador não deve encontrar erros
|
|
438
1433
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
439
1434
|
// O valor recebido deve ser mapeado como METODO
|
|
440
1435
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
441
1436
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
442
1437
|
]));
|
|
443
|
-
// O Lexador
|
|
1438
|
+
// O Lexador deve montar um objeto de comprimento 14
|
|
1439
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
444
1440
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
445
1441
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1442
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
446
1443
|
]));
|
|
447
1444
|
// Avaliador Sintático
|
|
448
1445
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
449
1446
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
450
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
451
|
-
//
|
|
1447
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1448
|
+
// Tradutor
|
|
452
1449
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
453
|
-
|
|
454
|
-
expect(resultadoTradutor).toContain(
|
|
1450
|
+
// O Tradutor deve serializar de acordo e traduzir translacao para translate
|
|
1451
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1452
|
+
expect(resultadoTradutor).toContain(`translate(3ch, 3mm);`);
|
|
455
1453
|
}
|
|
456
1454
|
});
|
|
457
|
-
it('Atribuindo Método "
|
|
458
|
-
for (let index = 0; index < metodos_1.
|
|
1455
|
+
it('Atribuindo Método "translação-3d()"', () => {
|
|
1456
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
459
1457
|
// Lexador
|
|
460
1458
|
const resultadoLexador = lexador.mapear([
|
|
461
1459
|
"lmht {",
|
|
462
|
-
`${metodos_1.
|
|
1460
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao-3d(5ch, 0.4in, 5em);`,
|
|
463
1461
|
"}"
|
|
464
1462
|
]);
|
|
465
|
-
// O Lexador deve
|
|
466
|
-
expect(resultadoLexador.simbolos).toHaveLength(13);
|
|
1463
|
+
// O Lexador não deve encontrar erros
|
|
467
1464
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
468
1465
|
// O valor recebido deve ser mapeado como METODO
|
|
469
1466
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
470
1467
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
471
1468
|
]));
|
|
472
|
-
// O Lexador
|
|
1469
|
+
// O Lexador deve montar um objeto de comprimento 17
|
|
1470
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
473
1471
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
474
1472
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
475
1473
|
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
@@ -477,21 +1475,32 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
477
1475
|
// Avaliador Sintático
|
|
478
1476
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
479
1477
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
480
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
481
|
-
//
|
|
1478
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1479
|
+
// Tradutor
|
|
482
1480
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
483
|
-
|
|
484
|
-
expect(resultadoTradutor).toContain(
|
|
1481
|
+
// O Tradutor deve serializar de acordo e traduzir translação-3d para translate3d
|
|
1482
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1483
|
+
expect(resultadoTradutor).toContain(`translate3d(5ch, 0.4in, 5em);`);
|
|
485
1484
|
}
|
|
486
1485
|
});
|
|
487
|
-
it('Atribuindo Método "
|
|
488
|
-
for (let index = 0; index < metodos_1.
|
|
489
|
-
const valoresAceitos = [
|
|
1486
|
+
it('Atribuindo Método "translação-3d() cobrindo todos os casos"', () => {
|
|
1487
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1488
|
+
const valoresAceitos = [
|
|
1489
|
+
'0',
|
|
1490
|
+
'0, 62px, 135px',
|
|
1491
|
+
'2.7rem, 0, 1rem',
|
|
1492
|
+
'5ch, 0.4in, 0',
|
|
1493
|
+
'0, 0, 135px',
|
|
1494
|
+
'0, 2.7rem, 0',
|
|
1495
|
+
'5ch, 0, 0',
|
|
1496
|
+
'42px, 62px, 135px',
|
|
1497
|
+
'0, 0, 0',
|
|
1498
|
+
];
|
|
490
1499
|
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
491
1500
|
// Lexador
|
|
492
1501
|
const resultadoLexador = lexador.mapear([
|
|
493
1502
|
"lmht {",
|
|
494
|
-
`${metodos_1.
|
|
1503
|
+
`${metodos_1.MetodosTranslacao[index]}: translação-3d(${valoresAceitos[valIndex]});`,
|
|
495
1504
|
"}"
|
|
496
1505
|
]);
|
|
497
1506
|
// O Lexador não deve encontrar erros
|
|
@@ -501,15 +1510,35 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
501
1510
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
502
1511
|
]));
|
|
503
1512
|
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
504
|
-
if (valIndex === 0
|
|
505
|
-
expect(resultadoLexador.simbolos).toHaveLength(
|
|
1513
|
+
if (valIndex === 0) {
|
|
1514
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1515
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1516
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1517
|
+
]));
|
|
1518
|
+
}
|
|
1519
|
+
else if (valIndex === 1 || valIndex === 2 || valIndex === 3) {
|
|
1520
|
+
expect(resultadoLexador.simbolos).toHaveLength(16);
|
|
1521
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1522
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1523
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1524
|
+
]));
|
|
1525
|
+
}
|
|
1526
|
+
else if (valIndex === 4 || valIndex === 5 || valIndex === 6) {
|
|
1527
|
+
expect(resultadoLexador.simbolos).toHaveLength(15);
|
|
1528
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1529
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1530
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1531
|
+
]));
|
|
1532
|
+
}
|
|
1533
|
+
else if (valIndex === 7) {
|
|
1534
|
+
expect(resultadoLexador.simbolos).toHaveLength(17);
|
|
506
1535
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
507
1536
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
508
1537
|
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
509
1538
|
]));
|
|
510
1539
|
}
|
|
511
1540
|
else {
|
|
512
|
-
expect(resultadoLexador.simbolos).toHaveLength(
|
|
1541
|
+
expect(resultadoLexador.simbolos).toHaveLength(14);
|
|
513
1542
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
514
1543
|
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
515
1544
|
]));
|
|
@@ -517,120 +1546,112 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
517
1546
|
// Avaliador Sintático
|
|
518
1547
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
519
1548
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
520
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1549
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
521
1550
|
// Tradutor
|
|
522
1551
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
523
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
524
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
525
|
-
|
|
1552
|
+
// O Tradutor deve serializar de acordo e traduzir translação-3d para translate3d
|
|
1553
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1554
|
+
if (valIndex !== 8) {
|
|
1555
|
+
expect(resultadoTradutor).toContain(`translate3d(${valoresAceitos[valIndex]});`);
|
|
1556
|
+
}
|
|
1557
|
+
else {
|
|
1558
|
+
expect(resultadoTradutor).toContain(`translate3d(0);`);
|
|
1559
|
+
}
|
|
526
1560
|
}
|
|
527
1561
|
}
|
|
528
1562
|
});
|
|
529
|
-
it('Atribuindo Método "
|
|
530
|
-
for (let index = 0; index < metodos_1.
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
"lmht {",
|
|
534
|
-
`${metodos_1.MetodoPassos[index]}: passos(2, salto-inicial);`,
|
|
535
|
-
"}"
|
|
536
|
-
]);
|
|
537
|
-
// O Lexador deve montar um objeto de comprimento 12 sem retornar nenhum erro
|
|
538
|
-
expect(resultadoLexador.simbolos).toHaveLength(12);
|
|
539
|
-
expect(resultadoLexador.erros).toHaveLength(0);
|
|
540
|
-
// O valor recebido deve ser mapeado como METODO
|
|
541
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
542
|
-
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
543
|
-
]));
|
|
544
|
-
// O Lexador também deve encontrar número e qualitativo no mapeamento
|
|
545
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
546
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
547
|
-
expect.objectContaining({ tipo: foles_1.default.QUALITATIVO }),
|
|
548
|
-
]));
|
|
549
|
-
// Avaliador Sintático
|
|
550
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
551
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
552
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPassos[index]]);
|
|
553
|
-
// // // // Tradutor
|
|
554
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
555
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoPassos[index]]);
|
|
556
|
-
expect(resultadoTradutor).toContain('steps(2, jump-start);');
|
|
557
|
-
}
|
|
558
|
-
});
|
|
559
|
-
it('Atribuindo Método "projetar-sombra()" com valores de comprimento somente', () => {
|
|
560
|
-
for (let index = 0; index < metodos_1.MetodoProjetarSombra.length; index += 1) {
|
|
561
|
-
const comprimentos = ['15px 15px', '15px 15px 15px', '0.5rem 0.5rem', '0.5rem 0.5rem 1rem'];
|
|
562
|
-
for (let posIndex = 0; posIndex < comprimentos.length; posIndex += 1) {
|
|
1563
|
+
it('Atribuindo Método "translação-eixo-z()"', () => {
|
|
1564
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1565
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
1566
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
563
1567
|
// Lexador
|
|
564
1568
|
const resultadoLexador = lexador.mapear([
|
|
565
1569
|
"lmht {",
|
|
566
|
-
`${metodos_1.
|
|
1570
|
+
`${metodos_1.MetodosTranslacao[index]}: translação-eixo-z(${valoresAceitos[valIndex]});`,
|
|
567
1571
|
"}"
|
|
568
1572
|
]);
|
|
569
|
-
// O Lexador deve
|
|
1573
|
+
// O Lexador não deve encontrar erros
|
|
570
1574
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
571
1575
|
// O valor recebido deve ser mapeado como METODO
|
|
572
1576
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
573
1577
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
574
1578
|
]));
|
|
575
|
-
// O Lexador
|
|
576
|
-
|
|
577
|
-
expect
|
|
578
|
-
expect.
|
|
579
|
-
|
|
1579
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1580
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1581
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1582
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1583
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1584
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1585
|
+
]));
|
|
1586
|
+
}
|
|
1587
|
+
else {
|
|
1588
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1589
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1590
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1591
|
+
]));
|
|
1592
|
+
}
|
|
580
1593
|
// Avaliador Sintático
|
|
581
1594
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
582
1595
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
583
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1596
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
584
1597
|
// Tradutor
|
|
585
1598
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
586
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
587
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
588
|
-
expect(resultadoTradutor).toContain(`
|
|
1599
|
+
// O Tradutor deve serializar de acordo e traduzir translação-eixo-z para translateZ
|
|
1600
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1601
|
+
expect(resultadoTradutor).toContain(`translateZ(${valoresAceitos[valIndex]});`);
|
|
589
1602
|
}
|
|
590
1603
|
}
|
|
591
1604
|
});
|
|
592
|
-
it('Atribuindo Método "
|
|
593
|
-
for (let index = 0; index < metodos_1.
|
|
594
|
-
const
|
|
595
|
-
for (let
|
|
1605
|
+
it('Atribuindo Método "translacao-eixo-z()"', () => {
|
|
1606
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1607
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
1608
|
+
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
596
1609
|
// Lexador
|
|
597
1610
|
const resultadoLexador = lexador.mapear([
|
|
598
1611
|
"lmht {",
|
|
599
|
-
`${metodos_1.
|
|
1612
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao-eixo-z(${valoresAceitos[valIndex]});`,
|
|
600
1613
|
"}"
|
|
601
1614
|
]);
|
|
602
|
-
// O Lexador deve
|
|
1615
|
+
// O Lexador não deve encontrar erros
|
|
603
1616
|
expect(resultadoLexador.erros).toHaveLength(0);
|
|
604
1617
|
// O valor recebido deve ser mapeado como METODO
|
|
605
1618
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
606
1619
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
607
1620
|
]));
|
|
608
|
-
// O Lexador
|
|
609
|
-
|
|
610
|
-
expect
|
|
611
|
-
expect.
|
|
612
|
-
|
|
1621
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1622
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1623
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1624
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1625
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1626
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1627
|
+
]));
|
|
1628
|
+
}
|
|
1629
|
+
else {
|
|
1630
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1631
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1632
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1633
|
+
]));
|
|
1634
|
+
}
|
|
613
1635
|
// Avaliador Sintático
|
|
614
1636
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
615
1637
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
616
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1638
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
617
1639
|
// Tradutor
|
|
618
1640
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
619
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
620
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
621
|
-
expect(resultadoTradutor).toContain(
|
|
1641
|
+
// O Tradutor deve serializar de acordo e traduzir translacao-eixo-z para translateZ
|
|
1642
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1643
|
+
expect(resultadoTradutor).toContain(`translateZ(${valoresAceitos[valIndex]});`);
|
|
622
1644
|
}
|
|
623
1645
|
}
|
|
624
1646
|
});
|
|
625
|
-
it('Atribuindo Método "
|
|
626
|
-
for (let index = 0; index < metodos_1.
|
|
627
|
-
const valoresAceitos = ['
|
|
628
|
-
const traducaoValoresAceitos = ['closest-side', 'closest-side', 'closest-corner', 'closest-corner', 'farthest-side', 'farthest-corner', 'sides', 'contain'];
|
|
1647
|
+
it('Atribuindo Método "translação-horizontal()"', () => {
|
|
1648
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1649
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
629
1650
|
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
630
1651
|
// Lexador
|
|
631
1652
|
const resultadoLexador = lexador.mapear([
|
|
632
1653
|
"lmht {",
|
|
633
|
-
`${metodos_1.
|
|
1654
|
+
`${metodos_1.MetodosTranslacao[index]}: translação-horizontal(${valoresAceitos[valIndex]});`,
|
|
634
1655
|
"}"
|
|
635
1656
|
]);
|
|
636
1657
|
// O Lexador não deve encontrar erros
|
|
@@ -639,63 +1660,40 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
639
1660
|
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
640
1661
|
expect.objectContaining({ tipo: foles_1.default.METODO }),
|
|
641
1662
|
]));
|
|
642
|
-
// O Lexador deve montar um objeto de comprimento
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
expect.
|
|
646
|
-
|
|
647
|
-
|
|
1663
|
+
// O Lexador deve montar um objeto de comprimento 11 caso haja quantificador e 10 caso não haja
|
|
1664
|
+
if (valIndex === 0 || valIndex === 1) {
|
|
1665
|
+
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
1666
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1667
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1668
|
+
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
1669
|
+
]));
|
|
1670
|
+
}
|
|
1671
|
+
else {
|
|
1672
|
+
expect(resultadoLexador.simbolos).toHaveLength(10);
|
|
1673
|
+
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
1674
|
+
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
1675
|
+
]));
|
|
1676
|
+
}
|
|
648
1677
|
// Avaliador Sintático
|
|
649
1678
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
650
1679
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
651
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1680
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
652
1681
|
// Tradutor
|
|
653
1682
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
654
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
655
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
656
|
-
expect(resultadoTradutor).toContain(`
|
|
1683
|
+
// O Tradutor deve serializar de acordo e traduzir translação-horizontal para translateX
|
|
1684
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1685
|
+
expect(resultadoTradutor).toContain(`translateX(${valoresAceitos[valIndex]});`);
|
|
657
1686
|
}
|
|
658
1687
|
}
|
|
659
1688
|
});
|
|
660
|
-
it('Atribuindo Método "
|
|
661
|
-
for (let index = 0; index < metodos_1.
|
|
662
|
-
|
|
663
|
-
const resultadoLexador = lexador.mapear([
|
|
664
|
-
"lmht {",
|
|
665
|
-
`${metodos_1.MetodoRaio[index]}: raio(200deg);`,
|
|
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: foles_1.default.METODO }),
|
|
673
|
-
]));
|
|
674
|
-
// O Lexador deve montar um objeto de comprimento 11
|
|
675
|
-
expect(resultadoLexador.simbolos).toHaveLength(11);
|
|
676
|
-
expect(resultadoLexador.simbolos).toEqual(expect.arrayContaining([
|
|
677
|
-
expect.objectContaining({ tipo: foles_1.default.NUMERO }),
|
|
678
|
-
expect.objectContaining({ tipo: foles_1.default.QUANTIFICADOR }),
|
|
679
|
-
]));
|
|
680
|
-
// Avaliador Sintático
|
|
681
|
-
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
682
|
-
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
683
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
684
|
-
// Tradutor
|
|
685
|
-
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
686
|
-
// O Tradutor deve serializar de acordo e traduzir raio para ray
|
|
687
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodoRaio[index]]);
|
|
688
|
-
expect(resultadoTradutor).toContain(`ray(200deg);`);
|
|
689
|
-
}
|
|
690
|
-
});
|
|
691
|
-
it('Atribuindo Método "rotacionar-matiz()"', () => {
|
|
692
|
-
for (let index = 0; index < metodos_1.MetodoRotacionarMatiz.length; index += 1) {
|
|
693
|
-
const valoresAceitos = ['100px', '100%', '0.1', '0', '1', '1.75'];
|
|
1689
|
+
it('Atribuindo Método "translacao-horizontal()"', () => {
|
|
1690
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1691
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
694
1692
|
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
695
1693
|
// Lexador
|
|
696
1694
|
const resultadoLexador = lexador.mapear([
|
|
697
1695
|
"lmht {",
|
|
698
|
-
`${metodos_1.
|
|
1696
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao-horizontal(${valoresAceitos[valIndex]});`,
|
|
699
1697
|
"}"
|
|
700
1698
|
]);
|
|
701
1699
|
// O Lexador não deve encontrar erros
|
|
@@ -721,23 +1719,23 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
721
1719
|
// Avaliador Sintático
|
|
722
1720
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
723
1721
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
724
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1722
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
725
1723
|
// Tradutor
|
|
726
1724
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
727
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
728
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
729
|
-
expect(resultadoTradutor).toContain(`
|
|
1725
|
+
// O Tradutor deve serializar de acordo e traduzir translação-horizontal para translateX
|
|
1726
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1727
|
+
expect(resultadoTradutor).toContain(`translateX(${valoresAceitos[valIndex]});`);
|
|
730
1728
|
}
|
|
731
1729
|
}
|
|
732
1730
|
});
|
|
733
|
-
it('Atribuindo Método "
|
|
734
|
-
for (let index = 0; index < metodos_1.
|
|
735
|
-
const valoresAceitos = ['
|
|
1731
|
+
it('Atribuindo Método "translação-vertical()"', () => {
|
|
1732
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1733
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
736
1734
|
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
737
1735
|
// Lexador
|
|
738
1736
|
const resultadoLexador = lexador.mapear([
|
|
739
1737
|
"lmht {",
|
|
740
|
-
`${metodos_1.
|
|
1738
|
+
`${metodos_1.MetodosTranslacao[index]}: translação-vertical(${valoresAceitos[valIndex]});`,
|
|
741
1739
|
"}"
|
|
742
1740
|
]);
|
|
743
1741
|
// O Lexador não deve encontrar erros
|
|
@@ -763,23 +1761,23 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
763
1761
|
// Avaliador Sintático
|
|
764
1762
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
765
1763
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
766
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1764
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
767
1765
|
// Tradutor
|
|
768
1766
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
769
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
770
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
771
|
-
expect(resultadoTradutor).toContain(`
|
|
1767
|
+
// O Tradutor deve serializar de acordo e traduzir translação-vertical para translateY
|
|
1768
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1769
|
+
expect(resultadoTradutor).toContain(`translateY(${valoresAceitos[valIndex]});`);
|
|
772
1770
|
}
|
|
773
1771
|
}
|
|
774
1772
|
});
|
|
775
|
-
it('Atribuindo Método "
|
|
776
|
-
for (let index = 0; index < metodos_1.
|
|
777
|
-
const valoresAceitos = ['
|
|
1773
|
+
it('Atribuindo Método "translacao-vertical()"', () => {
|
|
1774
|
+
for (let index = 0; index < metodos_1.MetodosTranslacao.length; index += 1) {
|
|
1775
|
+
const valoresAceitos = ['42px', '3ch', '0'];
|
|
778
1776
|
for (let valIndex = 0; valIndex < valoresAceitos.length; valIndex += 1) {
|
|
779
1777
|
// Lexador
|
|
780
1778
|
const resultadoLexador = lexador.mapear([
|
|
781
1779
|
"lmht {",
|
|
782
|
-
`${metodos_1.
|
|
1780
|
+
`${metodos_1.MetodosTranslacao[index]}: translacao-vertical(${valoresAceitos[valIndex]});`,
|
|
783
1781
|
"}"
|
|
784
1782
|
]);
|
|
785
1783
|
// O Lexador não deve encontrar erros
|
|
@@ -805,12 +1803,12 @@ describe('Testando Seletores que recebem MÉTODOS como valor', () => {
|
|
|
805
1803
|
// Avaliador Sintático
|
|
806
1804
|
const resultadoAvaliadorSintatico = avaliador.analisar(resultadoLexador.simbolos);
|
|
807
1805
|
// O Avaliador deve montar um objeto com os devidos nomes FolEs e CSS
|
|
808
|
-
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
1806
|
+
expect(resultadoAvaliadorSintatico[0].modificadores[0].propriedadeCss).toStrictEqual(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
809
1807
|
// Tradutor
|
|
810
1808
|
const resultadoTradutor = tradutor.serializar(resultadoAvaliadorSintatico);
|
|
811
|
-
// O Tradutor deve serializar de acordo e traduzir
|
|
812
|
-
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.
|
|
813
|
-
expect(resultadoTradutor).toContain(`
|
|
1809
|
+
// O Tradutor deve serializar de acordo e traduzir translação-vertical para translateY
|
|
1810
|
+
expect(resultadoTradutor).toContain(metodos_1.TraducaoValoresMetodos[metodos_1.MetodosTranslacao[index]]);
|
|
1811
|
+
expect(resultadoTradutor).toContain(`translateY(${valoresAceitos[valIndex]});`);
|
|
814
1812
|
}
|
|
815
1813
|
}
|
|
816
1814
|
});
|