This repository has been archived by the owner on Oct 17, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
FuncAux.h
264 lines (246 loc) · 8.38 KB
/
FuncAux.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
// Comentar la siguiente linea si es DLL
#define FRAMEWORKA1DLL_API
// Descomentar las siguiente linea si es DLL
/*
#ifdef FRAMEWORKA1DLL_EXPORTS
#define FRAMEWORKA1DLL_API __declspec(dllexport)
#else
#define FRAMEWORKA1DLL_API __declspec(dllimport)
#endif
*/
#ifndef FUNCAUX_H
#define FUNCAUX_H
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
#include "Definiciones.h"
#include "ColaArray.h"
#include "FuncAux_s.h"
namespace FrameworkA1
{
// Funciones de impresion
/*
PRE:
POS: imprime resultado esp vs rec
*/
FRAMEWORKA1DLL_API void imprimirEsperadoVsRecibido(NodoLista *esp, NodoLista *rec);
/*
PRE:
POS: imprime resultado esp vs rec y también los paramtros de entrada
*/
FRAMEWORKA1DLL_API void imprimirEsperadoVsRecibido(NodoLista *esp, NodoLista *rec, const char *inputParametersFormated);
/*
PRE:
POS: imprime resultado esp vs rec y también los paramtros de entrada
*/
FRAMEWORKA1DLL_API void imprimirEsperadoVsRecibido(NodoAB *esp, NodoAB *rec, const char *inputParametersFormated);
/*
PRE:
POS: imprime resultado esp vs rec y también los paramtros de entrada
*/
FRAMEWORKA1DLL_API void imprimirEsperadoVsRecibido(NodoAG *esp, NodoAG *rec, const char *inputParametersFormated);
/*
PRE:
POS: imprime resultado esp vs rec y también los paramtros de entrada
*/
FRAMEWORKA1DLL_API void imprimirEsperadoVsRecibido(bool esp, bool rec, const char *inputParametersFormated);
/*
PRE:
POS: imprime resultado esp vs rec y también los paramtros de entrada
*/
FRAMEWORKA1DLL_API void imprimirEsperadoVsRecibido(int esp, int rec, const char *inputParametersFormated);
/*
PRE:
POS: imprime resultado esp vs rec y también los paramtros de entrada
*/
FRAMEWORKA1DLL_API void imprimirEsperadoVsRecibido(const char *esp, const char *rec, const char *inputParametersFormated);
/*
PRE:
POS: si res es true, incrementa correctos en 1, sino incrementa error en 1
*/
FRAMEWORKA1DLL_API void ver(bool res, int &correctos, int &error);
/*
PRE:
POS: imprime el resultado de las pruebas para una funcion determinada
*/
FRAMEWORKA1DLL_API void imprimirResultadoPrueba(const char *nomFuncion, int &nroPrueba, int &correctos, int &error,
int &correctosTotal, int &errorTotal, int &ejCorrectosTotal, int &ejErrorTotal);
// Funciones de comparacion
/*
Pre: los vectores deben tener el largo largo
Pos: Devuelve true si los string resultado y esperado son iguales
*/
FRAMEWORKA1DLL_API bool sonIguales(const char* resultado, const char* esperado);
/*
Pre: los vectores deben tener el largo largo
Pos: Devuelve true si los vectores resultado y esperado son iguales
*/
FRAMEWORKA1DLL_API bool sonIguales(int* resultado, int* esperado, int largo);
/*
Pre: debe recibir dos matrices que deben tener las columnas y filas indicadas
Pos: Devuelve true si las matrices de enteros resultado y esperado son iguales
*/
FRAMEWORKA1DLL_API bool sonIguales(int** resultado, int** esperado, int columnas, int filas);
/*
Pre: debe recibir dos matrices de char que deben tener las columnas y filas indicadas
Pos: Devuelve true si las matrices de char resultado y esperado son iguales
*/
FRAMEWORKA1DLL_API bool sonIguales(char** resultado, char** esperado, int columnas, int filas);
/*
PRE: debe recibir dos vectores de strings de largo filas
POS: devuelve true si las matrices resultado y esperado son iguales
*/
FRAMEWORKA1DLL_API bool sonIguales(char** resultado, char** esperado, int cantStr);
/*
PRE:
POS: devuelve true si las listas tienen los mismos datos y misma forma
*/
FRAMEWORKA1DLL_API bool sonIgualesDatosForma(NodoLista *l1, NodoLista *l2);
/*
PRE:
POS: devuelve true si los arboles tienen los mismos datos
*/
FRAMEWORKA1DLL_API bool sonIgualesDatos(NodoLista *l1, NodoLista *l2);
/*
PRE:
POS: devuelve true si los arboles tienen los mismos datos y misma forma
*/
FRAMEWORKA1DLL_API bool sonIgualesDatosForma(NodoAB *a1, NodoAB *a2);
/*
PRE:
POS: devuelve true si los arboles tienen los mismos datos
*/
FRAMEWORKA1DLL_API bool sonIgualesDatos(NodoAB *a1, NodoAB *a2);
/*
PRE:
POS: devuelve true si los arboles tienen los mismos datos y misma forma
*/
FRAMEWORKA1DLL_API bool sonIgualesDatosForma(NodoAG *a1, NodoAG *a2);
/*
PRE:
POS: devuelve true si los arboles tienen los mismos datos
*/
FRAMEWORKA1DLL_API bool sonIgualesDatos(NodoAG *a1, NodoAG *a2);
/*
PRE: debe recibir dos matrices de strings que deben tener los largos indicados
POS: devuelve true si los strings en los vectores comparten memoria
*/
FRAMEWORKA1DLL_API bool compartenMemoria(char** vec1, int largoVec1, char** vec2, int largoVec2);
/*
PRE:
POS: devuelve true si l1 y l2 comparten memoria
*/
FRAMEWORKA1DLL_API bool compartenMemoria(NodoLista *l1, NodoLista *l2);
/*
PRE: debe recibir 2 vectores de int y sus respectivos largos
POS: devuelve true si vec1 y vec2 comparten memoria
*/
FRAMEWORKA1DLL_API bool compartenMemoria(int *vec1, int *vec2, int largoVec1, int largoVec2);
/*
PRE:
POS: devuelve true si a1 y a2 comparten memoria
*/
FRAMEWORKA1DLL_API bool compartenMemoria(NodoAB *a1, NodoAB *a2);
/*
PRE:
POS: devuelve true si a1 y a2 comparten memoria
*/
FRAMEWORKA1DLL_API bool compartenMemoria(NodoAG *a1, NodoAG *a2);
/*
PRE:
POS: devuelve true si a es un ABB
*/
FRAMEWORKA1DLL_API bool esABB(NodoAB *a);
// Funciones de Destruccion
/*
PRE: debe recibir un vector de strings del largo indicado
POS: destruye vector vec
*/
FRAMEWORKA1DLL_API void destruir(char** vec, int largo);
/*
PRE: debe recibir un vector de int
POS: destruye vector vec
*/
FRAMEWORKA1DLL_API void destruir(int* vec);
/*
PRE: debe recibir una matriz que debe tener las columnas indicadas
POS: destruye matriz mat
*/
FRAMEWORKA1DLL_API void destruir(int** mat, int columnas);
/*
PRE:
POS: destruye la lista l
*/
FRAMEWORKA1DLL_API void destruir(NodoLista *&l);
/*
PRE:
POS: destruye arbol l
*/
FRAMEWORKA1DLL_API void destruir(NodoAB *&a);
/*
PRE:
POS: destruye arbol l
*/
FRAMEWORKA1DLL_API void destruir(NodoAG *&a);
/*
PRE:
POS: devuleve copia de str sin compartir memoria. Se debe destruir con delete []
*/
FRAMEWORKA1DLL_API char *copioString(const char *str);
/*
PRE:
POS: imprime el arbol por niveles
*/
FRAMEWORKA1DLL_API void imprimirABGrande(NodoAB *a);
/*
PRE: los caracteres de stringDatos pueden ser colecciones con el siguiente formato:
arbol binario: {...} Formato "{2,#,8,1,2}" Se carga por niveles
arbol general: {{...}} Formato "{{2,8,#,1,2}}" Se van cargando los hijos primero. El # es NULL, vuelve al padre y sigue con hermano.
lista: (...) Formato "(8,1,2)"
vector int: [...] Formato "[8,1,2]"
vector string: [...] Formato "['str1','str2']"
POS: convierte stringDatos a un arbol, lista, vector int o vector strings.
se debe castear al tipo (NodoAB *), (NodoAG *), (NodoLista *), (int *), (char **)
*/
FRAMEWORKA1DLL_API void* parsearColeccion(const char *stringDatos, int &largo);
/*
PRE:
POS: retorna un string a partir de un int. Formato "-12". Se debe liberar la memoria retornada con delete []
*/
FRAMEWORKA1DLL_API char *serializar(int);
/*
PRE:
POS: retorna un string a partir de un bool. Formato "true". Se debe liberar la memoria retornada con delete []
*/
FRAMEWORKA1DLL_API char *serializar(bool);
/*
PRE:
POS: retorna un string a partir de una lista. Formato "(8,1,2)". Se debe liberar la memoria retornada con delete []
*/
FRAMEWORKA1DLL_API char *serializar(NodoLista *l);
/*
PRE:
POS: retorna un string a partir de un arbol. Formato "{2,#,8,1,2}". Se debe liberar la memoria retornada con delete []
*/
FRAMEWORKA1DLL_API char *serializar(NodoAB *a);
/*
PRE:
POS: retorna un string a partir de un arbol general. Formato "{{2,8,#,1,2}}". Se debe liberar la memoria retornada con delete []
*/
FRAMEWORKA1DLL_API char *serializar(NodoAG *a);
/*
PRE:
POS: retorna un string a partir de vector de int. Se debe liberar la memoria retornada con delete []
*/
FRAMEWORKA1DLL_API char *serializar(int *vec, int largo);
/*
PRE:
POS: retorna un string a partir de vector de strings. Se debe liberar la memoria retornada con delete []
*/
FRAMEWORKA1DLL_API char *serializar(char **vecStr, int largo);
};
#endif