#include "puzzle_common.h"
#include "puzzle.h"
int main(void)
{
PuzzleContext context;
PuzzleCvec cvec1, cvec2, cvec3, cvec4, cvec5, cvec6;
double d1, d2, d3, d4, d5, d6;
puzzle_init_context(&context);
puzzle_init_cvec(&context, &cvec1);
puzzle_init_cvec(&context, &cvec2);
puzzle_init_cvec(&context, &cvec3);
puzzle_init_cvec(&context, &cvec4);
puzzle_init_cvec(&context, &cvec5);
puzzle_init_cvec(&context, &cvec6);
if (puzzle_fill_cvec_from_file
(&context, &cvec1, "pics/luxmarket_tshirt01.jpg") != 0) {
fprintf(stderr, "File 1 not found\n");
exit(0);
}
if (puzzle_fill_cvec_from_file
(&context, &cvec2, "pics/luxmarket_tshirt01_black.jpg") != 0) {
fprintf(stderr, "File 2 not found\n");
exit(0);
}
if (puzzle_fill_cvec_from_file
(&context, &cvec3, "pics/luxmarket_tshirt01_sal.jpg") != 0) {
fprintf(stderr, "File 3 not found\n");
exit(0);
}
if (puzzle_fill_cvec_from_file
(&context, &cvec4, "pics/luxmarket_tshirt01_sheum.jpg") != 0) {
fprintf(stderr, "File 4 not found\n");
exit(0);
}
if (puzzle_fill_cvec_from_file
(&context, &cvec5, "pics/duck.gif") != 0) {
fprintf(stderr, "File 5 not found\n");
exit(0);
}
if (puzzle_fill_cvec_from_file
(&context, &cvec6, "pics/pic-a-0.jpg") != 0) {
fprintf(stderr, "File 6 not found\n");
exit(0);
}
d1 = puzzle_vector_normalized_distance(&context, &cvec2, &cvec1, 1);
d2 = puzzle_vector_normalized_distance(&context, &cvec1, &cvec2, 1);
d3 = puzzle_vector_normalized_distance(&context, &cvec1, &cvec3, 1);
d4 = puzzle_vector_normalized_distance(&context, &cvec1, &cvec4, 1);
d5 = puzzle_vector_normalized_distance(&context, &cvec1, &cvec5, 1);
d6 = puzzle_vector_normalized_distance(&context, &cvec1, &cvec6, 1);
printf("%g %g %g %g %g %g\n", d1, d2, d3, d4, d5, d6);
puzzle_free_cvec(&context, &cvec1);
puzzle_free_cvec(&context, &cvec2);
puzzle_free_cvec(&context, &cvec3);
puzzle_free_cvec(&context, &cvec4);
puzzle_free_cvec(&context, &cvec5);
puzzle_free_cvec(&context, &cvec6);
puzzle_free_context(&context);
if ((int) (d1 * 100.0) != (int) (d2 * 100.0)) {
return 1;
}
if (d1 > PUZZLE_CVEC_SIMILARITY_THRESHOLD ||
d3 > PUZZLE_CVEC_SIMILARITY_THRESHOLD ||
d4 > PUZZLE_CVEC_SIMILARITY_THRESHOLD ||
d5 < PUZZLE_CVEC_SIMILARITY_THRESHOLD ||
d6 < PUZZLE_CVEC_SIMILARITY_THRESHOLD) {
return 2;
}
return 0;
}