S'assure que les informations de débogage vont dans stderr
This commit is contained in:
parent
bd0c0afd89
commit
aa63afb9d8
|
@ -6,15 +6,14 @@
|
||||||
typedef struct HufTree HufTree;
|
typedef struct HufTree HufTree;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Écrire sur la sortie standard à la manière de printf,
|
* Écrire des données de débogage sur la sortie d'erreurs standard
|
||||||
* seulement si le mode verbeux est actif
|
* (seulement si le mode verbeux est actif)
|
||||||
*/
|
*/
|
||||||
void printVerbose(const char* format, ...);
|
void printVerbose(const char* format, ...);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Active ou désactive l'affichage des messages verbeux
|
* Active ou désactive l'affichage des messages de débogage (mode verbeux)
|
||||||
* (mode verbeux). Si activé, `printVerbose` écrit sur
|
* sur la sortie d'erreurs standard
|
||||||
* la sortie standard. Sinon, `printVerbose` n'a pas d'effet
|
|
||||||
*/
|
*/
|
||||||
void setVerbose(int);
|
void setVerbose(int);
|
||||||
|
|
||||||
|
@ -24,8 +23,7 @@ void setVerbose(int);
|
||||||
int isVerbose();
|
int isVerbose();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Afficher sur la sortie standard l'arbre passé
|
* Afficher sur la sortie standard l'arbre passé en paramètre
|
||||||
* en paramètre
|
|
||||||
*/
|
*/
|
||||||
void printTree(HufTree tree);
|
void printTree(HufTree tree);
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,7 @@ void printVerbose(const char* format, ...) {
|
||||||
va_list args_list;
|
va_list args_list;
|
||||||
|
|
||||||
va_start(args_list, format);
|
va_start(args_list, format);
|
||||||
vprintf(format, args_list);
|
vfprintf(stderr, format, args_list);
|
||||||
va_end(args_list);
|
va_end(args_list);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,12 +57,12 @@ void _printVertex(HufVertex vert, wchar_t* buffer, int length) {
|
||||||
if (vert.child_l != NULL && vert.child_r != NULL) {
|
if (vert.child_l != NULL && vert.child_r != NULL) {
|
||||||
// Affichage d'un sommet avec enfants, on montre
|
// Affichage d'un sommet avec enfants, on montre
|
||||||
// la probabilité somme des enfants
|
// la probabilité somme des enfants
|
||||||
printf("■\n");
|
printVerbose("■\n");
|
||||||
|
|
||||||
// Affichage du fils gauche. Augmentation du préfixe
|
// Affichage du fils gauche. Augmentation du préfixe
|
||||||
// pour l'affichage des enfants du fils gauche
|
// pour l'affichage des enfants du fils gauche
|
||||||
buffer[length] = '\0';
|
buffer[length] = '\0';
|
||||||
printf("%ls├── ", buffer);
|
printVerbose("%ls├── ", buffer);
|
||||||
|
|
||||||
buffer[length] = L'│';
|
buffer[length] = L'│';
|
||||||
buffer[length + 1] = ' ';
|
buffer[length + 1] = ' ';
|
||||||
|
@ -74,14 +74,14 @@ void _printVertex(HufVertex vert, wchar_t* buffer, int length) {
|
||||||
// Affichage du fils droite. Augmentation du préfixe
|
// Affichage du fils droite. Augmentation du préfixe
|
||||||
// pour l'affichage des enfants du fils droit
|
// pour l'affichage des enfants du fils droit
|
||||||
buffer[length] = '\0';
|
buffer[length] = '\0';
|
||||||
printf("%ls└── ", buffer);
|
printVerbose("%ls└── ", buffer);
|
||||||
|
|
||||||
buffer[length] = ' ';
|
buffer[length] = ' ';
|
||||||
_printVertex(*vert.child_r, buffer, length + 4);
|
_printVertex(*vert.child_r, buffer, length + 4);
|
||||||
} else {
|
} else {
|
||||||
// Affichage d'une feuille de l'arbre, correspondant
|
// Affichage d'une feuille de l'arbre, correspondant
|
||||||
// à un caractère du corpus
|
// à un caractère du corpus
|
||||||
printf("%c\n", _safeChar(vert.name));
|
printVerbose("%c\n", _safeChar(vert.name));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -97,44 +97,44 @@ int _maxDepth(HufVertex vert) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void printFrequenciesTable(double* table, size_t size) {
|
void printFrequenciesTable(double* table, size_t size) {
|
||||||
printf("┌─┬────┬─────────┐\n");
|
printVerbose("┌─┬────┬─────────┐\n");
|
||||||
printf("│C│code│fréquence│\n");
|
printVerbose("│C│code│fréquence│\n");
|
||||||
printf("├─┼────┼─────────┤\n");
|
printVerbose("├─┼────┼─────────┤\n");
|
||||||
|
|
||||||
double sum = 0;
|
double sum = 0;
|
||||||
|
|
||||||
for (size_t i = 0; i < size; i++) {
|
for (size_t i = 0; i < size; i++) {
|
||||||
if (table[i] != 0) {
|
if (table[i] != 0) {
|
||||||
printf("│%c│%4d│%9.4lf│\n", _safeChar(i), (int) i, table[i]);
|
printVerbose("│%c│%4d│%9.4lf│\n", _safeChar(i), (int) i, table[i]);
|
||||||
sum += table[i];
|
sum += table[i];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("├─┴────┼─────────┤\n");
|
printVerbose("├─┴────┼─────────┤\n");
|
||||||
printf("│ Total│%9.4lf│\n", sum);
|
printVerbose("│ Total│%9.4lf│\n", sum);
|
||||||
printf("└──────┴─────────┘\n");
|
printVerbose("└──────┴─────────┘\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
void printLabelsTable(char** table, size_t size) {
|
void printLabelsTable(char** table, size_t size) {
|
||||||
printf("┌─┬────┬────────────────┐\n");
|
printVerbose("┌─┬────┬────────────────┐\n");
|
||||||
printf("│C│code│ étiquette│\n");
|
printVerbose("│C│code│ étiquette│\n");
|
||||||
printf("├─┼────┼────────────────┤\n");
|
printVerbose("├─┼────┼────────────────┤\n");
|
||||||
|
|
||||||
double total_length = 0;
|
double total_length = 0;
|
||||||
size_t label_count = 0;
|
size_t label_count = 0;
|
||||||
|
|
||||||
for (size_t i = 0; i < size; i++) {
|
for (size_t i = 0; i < size; i++) {
|
||||||
if (table[i] != 0) {
|
if (table[i] != 0) {
|
||||||
printf("│%c│%4d│%16s│\n", _safeChar(i), (int) i, table[i]);
|
printVerbose("│%c│%4d│%16s│\n", _safeChar(i), (int) i, table[i]);
|
||||||
|
|
||||||
total_length += strlen(table[i]);
|
total_length += strlen(table[i]);
|
||||||
label_count++;
|
label_count++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("├─┴────┴───┬────────────┤\n");
|
printVerbose("├─┴────┴───┬────────────┤\n");
|
||||||
printf("│Long. moy.│%12.4lf│\n", total_length / label_count);
|
printVerbose("│Long. moy.│%12.4lf│\n", total_length / label_count);
|
||||||
printf("└──────────┴────────────┘\n");
|
printVerbose("└──────────┴────────────┘\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
char _safeChar(char input) {
|
char _safeChar(char input) {
|
||||||
|
|
Loading…
Reference in New Issue