pruebas
Afirmaciones para escribir pruebas: cada fn prueba_* falla en la primera afirmación incumplida. Se ejecutan con `cometa probar`. Para juegos, pruebas.avanzar y pruebas.pixel comprueban lo que se pinta en pantalla, y pruebas.mantener, pruebas.pulsar y pruebas.raton simulan la entrada.
usar std/pruebasFunciones
pruebas.afirmar(condicion bool, mensaje cadena = "")
Falla la prueba con el mensaje dado si la condición es falsa.
pruebas.igual(esperado cadena, obtenido cadena, mensaje cadena = "")
Falla la prueba si esperado y obtenido difieren. Acepta dos enteros, decimales, cadenas o bool del mismo tipo.
pruebas.casi_igual(esperado decimal, obtenido decimal, tolerancia decimal = 0.000001, mensaje cadena = "")
Falla la prueba si esperado y obtenido difieren en más que la tolerancia (útil para decimales).
pruebas.fallar(mensaje cadena)
Falla la prueba de inmediato con el mensaje dado.
pruebas.avanzar(juego pincel.Juego, cuadros entero = 1, ancho entero = 320, alto entero = 180, tps entero = 60)
Prueba visual: llama a actualizar del juego `cuadros` veces (con dt = 1/tps) y luego a pintar una vez sobre una pantalla oculta de ancho×alto. No lee el teclado ni el ratón reales: usa la entrada simulada con pruebas.mantener, pruebas.pulsar, pruebas.raton y similares. Solo funciona con `cometa probar`.
pruebas.pantalla() graficos.Imagen
Copia de la pantalla pintada por el último pruebas.avanzar, como graficos.Imagen (léela con lienzo.leer_pixel o guárdala con lienzo.guardar).
pruebas.pixel(x entero, y entero, esperado color.Color, tolerancia entero = 0, mensaje cadena = "")
Falla la prueba si el píxel (x, y) de la pantalla pintada por el último pruebas.avanzar no tiene el color esperado. `tolerancia` admite esa diferencia por canal (útil en bordes suavizados).
pruebas.mantener(tecla entrada.Tecla)
Simula que la tecla se mantiene pulsada desde el próximo pruebas.avanzar y hasta pruebas.soltar (o el final de la prueba). Solo la ven las funciones de entrada del juego, no el teclado real.
pruebas.soltar(tecla entrada.Tecla)
Simula que se suelta una tecla mantenida con pruebas.mantener, a partir del próximo pruebas.avanzar.
pruebas.pulsar(tecla entrada.Tecla)
Simula una pulsación de un solo cuadro: en el próximo pruebas.avanzar, entrada.tecla_presionada es verdadero una vez y la tecla se suelta en el cuadro siguiente.
pruebas.mantener_raton(boton entrada.BotonRaton)
Como pruebas.mantener, para un botón del ratón.
pruebas.soltar_raton(boton entrada.BotonRaton)
Como pruebas.soltar, para un botón del ratón.
pruebas.pulsar_raton(boton entrada.BotonRaton)
Como pruebas.pulsar, para un botón del ratón.
pruebas.raton(x decimal, y decimal)
Coloca el puntero simulado en (x, y), en píxeles de la pantalla lógica, desde el próximo pruebas.avanzar.
pruebas.rueda(x decimal, y decimal)
Simula un movimiento de la rueda del ratón (x, y) durante el próximo cuadro de pruebas.avanzar.
pruebas.texto(texto cadena)
Simula que se teclea el texto durante el próximo cuadro de pruebas.avanzar; lo recibe ui.campo_texto si tiene el foco.
pruebas.mantener_mando(boton entrada.BotonMando)
Como pruebas.mantener, para un botón del mando 0 (entrada.mandos() pasa a valer 1).
pruebas.soltar_mando(boton entrada.BotonMando)
Como pruebas.soltar, para un botón del mando 0.
pruebas.pulsar_mando(boton entrada.BotonMando)
Como pruebas.pulsar, para un botón del mando 0 (lo ve entrada.mando_boton_presionado).
pruebas.eje_mando(eje entrada.EjeMando, valor decimal)
Fija el valor de una palanca del mando 0, entre -1 y 1, desde el próximo pruebas.avanzar y hasta que se fije otro.