; tests/01_reference.txt - assertions pixel par pixel sur tests/_reference.png
; Toutes les coordonnees sont calculees a la main a partir de la scene declaree
; dans tests/01_reference.au3 (fenetre 400x300, fond #101820).
size 400x300

; --- fond : un pixel ou rien n'a ete pose
at 390,150 #101820

; --- 1 FillRect(10,10,50,30) #f07828 : exact, 50*30 = 1500 pixels
bbox #f07828 10,10,59,39 8 0
count #f07828 10,10,59,39 1500 8 0
at 35,25 #f07828

; --- 2 DrawRect(70,10,50,30) #ffff00 epaisseur 2 : trait centre sur le contour,
;     donc 69..121 en x et 9..41 en y, interieur vide
at 70,25 #ffff00
at 95,25 #101820
any 69,9,121,41 #ffff00 8 2

; --- 3 sprite natif 8x8 en (150,10) : quadrants de 4x4
at 151,11 #7f00ff
at 156,11 #00ffff
at 151,16 #ff007f
at 156,16 #80ff80
at 158,10 #101820

; --- 4 ImageScaled 32x16 en (170,10) : chaque quadrant prend 16x8 pixels
at 175,13 #7f00ff
at 195,13 #00ffff
at 175,21 #ff007f
at 195,21 #80ff80

; --- 5 ImagePart(0,0,4,4) en (300... ici 210,10) : le quart haut-gauche seul
at 211,11 #7f00ff
at 215,11 #101820

; --- 6 sprite retourne horizontalement en (230,10) : cyan et violet permutent
at 231,11 #00ffff
at 236,11 #7f00ff
at 231,16 #80ff80
at 236,16 #ff007f

; --- 14 sprite a 90 degres dans le sens horaire autour de son centre
at 251,11 #ff007f
at 256,11 #7f00ff
at 251,16 #80ff80
at 256,16 #00ffff

; --- 16 retour horizontal PUIS rotation 90 degres en (310,10) : ces deux
;      operations ne commutent pas, ce bloc fige l'ordre du moteur (miroir d'abord)
at 311,11 #80ff80
at 316,11 #00ffff
at 311,16 #ff007f
at 316,16 #7f00ff

; --- 17 morceau 4x4 agrandi en 8x8 puis tourne de 90 degres en (330,10) :
;      la rotation marche aussi sur la voie echellee (ImagePart / ImageScaled)
at 332,12 #ff007f
at 336,12 #7f00ff
at 332,16 #80ff80
at 336,16 #00ffff

; --- 7 FillCircle(60,80,20) : disque de rayon 20. La boite ideale serait
;     40,60,80,100 ; le rendu antialiasse le bord d'un demi-pixel et la tolerance
;     de couleur exclut cette couronne, d'ou 1 ou 2 pixels gagnes sur chaque bord.
bbox #50c8ff 40,60,80,100 8 2
count #50c8ff 38,58,82,102 1257 8 8
at 60,80 #50c8ff

; --- 8 DrawEllipse(150,80,30,20) epaisseur 3 : perimetre ~159, donc ~477 pixels
;     pleins avant antialiasing des deux rives du trait (316 pixels mesures).
bbox #00ff00 118,58,182,102 8 2
count #00ff00 116,56,184,104 316 8 8
at 150,80 #101820

; --- 9 DrawLine(220,80 -> 380,80) epaisseur 4 : y 78..82, bords plans
at 300,80 #ff00ff
at 300,90 #101820
bbox #ff00ff 220,78,380,82 8 2

; --- 10 camera (-20,-20) + FillRect monde (100,100,40,40) : arrive a l'ecran
;      (120,120). Le pixel 110,110 est du fond : sans SetTransform, il serait orange.
bbox #c86432 120,120,159,159 8 0
count #c86432 120,120,159,159 1600 8 0
at 110,110 #101820

; --- 15 rotation horaire avec la camera (-20,-20) : position ecran (290,130)
at 291,131 #ff007f
at 296,131 #7f00ff
at 291,136 #80ff80
at 296,136 #00ffff

; --- 11 texte monde "monde" 20 px, camera (-100,0) : l'encre est entre 110 et 200
;      et rien de cette couleur n'est present a sa position non decompee
any 110,248,200,275 #ff8000 40
none #ff8000 0,248,105,275 12

; --- 12 RectUI(0,276,400,24) noir a 200/255 sur fond (16,24,32) = (3,5,7)
at 30,288 #030507 10
at 300,270 #101820
any 0,276,399,299 #030507 10

; --- 13 TextUI blanc : l'encre existe, et seulement dans le bandeau
any 108,277,300,299 #ffffff 60

; --- 18 et 19 corps (350,190) 20x20 sous la superposition de debogage, tous les
;      drapeaux allumes. Un trait de 1 px sur des coordonnees entieres est antialiasse
;      sur deux rangees a moitie couvertes : la couleur "pure" n'existe donc jamais
;      dans l'image et ce sont les melanges mesures sur le fond (16,24,32) qui sont
;      figes ici, avec la meme tolerance de 8 que le reste du fichier.
;      boite : contour seul, 349,189 a 370,210 pour un rectangle 350..369 x 190..209
bbox #767a7e 349,189,370,210 8 0
count #767a7e 340,180,380,220 146 8 0
; 355,195 et 360,193 sont a l'interieur : la boite n'est pas remplie
at 355,195 #101820
at 360,193 #101820
; fleche vitesse : VX=100 donne 10 px vers la droite depuis le centre 360,200.
; La meme nuance apparait dans le disque du haut, d'ou le comptage limite a la cellule.
count #307a90 340,180,380,220 12 8 0
at 366,200 #307a90
; 371,200 est du fond : rien au dela de la pointe
at 371,200 #101820
; fleche acceleration : AX=-50 donne 5 px vers la gauche
bbox #88662e 355,199,357,200 8 0
; centre : carre de 3x3, 6 pixels sur 9 passent la tolerance
bbox #888c90 358,198,362,202 8 0
; marque d'orientation : ANGLE=90 pointe vers le bas, 14 px sous le centre
bbox #624890 359,203,360,213 8 0
at 360,214 #101820
at 348,189 #101820
