1 {Rutina de verificación para operaciones con datos de tipo byte.
2 Se debe simular el programa en el circuito "Test2.DSN". Se debe
3 escuchar, una serie de pitidos cortos. Si se escucha un pitido
4 largo, es que hubo algún error en el resultado de alguna operación.
5 Por: Tito Hinostroza
6 Modificado: 01/03/2018}
7 uses PIC10F202, UnitTest;
8 {$FREQUENCY 4Mhz}
9 {$OUTPUTHEX 'output.hex'}
10 var
11   a, b: byte;
12 
13 begin
14   SetAsOutput(pinLed);
15   pinLed := 0;
16 
17   //////////////////////////////////////////////////////////
18 	////////////////////////  Suma  /////////////////////////
19   //////////////////////////////////////////////////////////
20 
21 	//Constante
22   if 0 + 0 = 0 then good else bad end;
23   if 0 + 1  = 0 then bad else good end;
24   if 255 + 0 = 255 then good else bad end;
25 
26 	//Variables
27   a := 0;
28   b := 255;
29   if a + a = 0 then good else bad end;
30   if a + b = 255 then good else bad end;
31   if b + a = 255 then good else bad end;
32   if a + b = b then good else bad end;
33 
34   a := 1;
35   b := 254;
36   if a + b = 255 then good else bad end;
37 
38 	//Variables - constantes
39   a := 0;
40   if a + 0 = 0 then good else bad end;
41   if 0 + a = 0 then good else bad end;
42   if a + 1 = 1 then good else bad end;
43   if 1 + a = 1 then good else bad end;
44   if a + 255 = 255 then good else bad end;
45   if 255 + a = 255 then good else bad end;
46 
47   a := 1;
48   if a + 0 = 1 then good else bad end;
49   if 0 + a = 1 then good else bad end;
50   if a + 1 = 2 then good else bad end;
51   if 1 + a = 2 then good else bad end;
52   if a + 254 = 255 then good else bad end;
53   if 254 + a = 255 then good else bad end;
54 
55 	//Expresiones
56   a := 10; b := 5;
57   if a = b+5 then good else bad end;
58   if a + b = 15 then good else bad end;
59   if (a + b) + 1 = 16 then good else bad end;
60   if b + a = 15 then good else bad end;
61   if 15 = b + a then good else bad end;
62   if a + b = a + 5 then good else bad end;
63   if a + (b+a) = a + (a + 5) then good else bad end;
64   if a + (b+ (a+b)) = a + (a + a) then good else bad end;
65 
66   //////////////////////////////////////////////////////////
67 	////////////////////////  Resta  /////////////////////////
68   //////////////////////////////////////////////////////////
69 
70 	//Constante
71   if 0 - 0 = 0 then good else bad end;
72   if 1 - 0  = 0 then bad else good end;
73   if 255 - 0 = 255 then good else bad end;
74 
75 	//Variables
76   a := 255; b := 0;
77   if a - a = 0 then good else bad end;
78   if a - a = b then good else bad end;
79   if b - b = b then good else bad end;
80   if a - b = 255 then good else bad end;
81   if a - b = a then good else bad end;
82 
83   a := 255; b := 1;
84   if b - b = 0 then good else bad end;
85   if a - b = 254 then good else bad end;
86 
87   a := 1; b := 0;
88   if a - b = 1 then good else bad end;
89   if a - b = a then good else bad end;
90 
91   a := 10; b := 5;
92   if a - b = b then good else bad end;
93   if a - b = 5 then good else bad end;
94 
95 	//Variables - constantes
96   a := 0;
97   if a - 0 = 0 then good else bad end;
98   if 0 - a = 0 then good else bad end;
99   if a - 0 = a then good else bad end;
100   a := 1;
101   if a - 1 = 0 then good else bad end;
102   if 1 - a = 0 then good else bad end;
103   if 255 - a = 254 then good else bad end;
104   if 10 - a = 9 then good else bad end;
105   a := 255;
106   if a - 1 = 254 then good else bad end;
107   if 255 - a = 0 then good else bad end;
108   if a - 10 = 245 then good else bad end;
109 
110 	//Expresiones
111   a := 10; b := 5;
112   if 10 - (b+1) = 4 then good else bad end;  //constante - expresión
113   if a - (b+1) = 4 then good else bad end;   //variable - expresión
114   if (a+1) - 1 = 10 then good else bad end;   //expresión - constante
115   if (a+1) - 0 = 11 then good else bad end;   //expresión - constante
116   if (a+1) - a = 1 then good else bad end;   //expresión - variable
117   //Pruebas eliminadas por falta de espacio
118 //  if (a+1) - (b+1) = 5 then good else bad end;   //expresión - expresión
119 //  if a - b = a - b then good else bad end;
120 //  if a - b - 1 = 4 then good else bad end;
121 //  if a - b - 1 = b - 1 then good else bad end;
122 //  if 5 = a - b then good else bad end;
123 //  if a - 5 = a - b then good else bad end;
124 //  if b + (a-b) = a  then good else bad end;
125 //  if a = b + (a-b) then good else bad end;
126 //  if a + (b+ (a-b)) = a + (a - b + 5) then good else bad end;
127 //
128 
129 end.
130