void Image_saveToFile_works(CuTest* tc) { Image* image = Image_newFromData(reference, sizeof(reference), 4, 4, TRUE); BOOL result = Image_saveToFile(image, "test-image.png"); CuAssert(tc, "Could not save image.", result == TRUE); Image_delete(image); }
void Image_newFromData_shouldNotDeleteAlphaValues(CuTest* tc) { Image* image = Image_newFromData(reference, sizeof(reference), 4, 4, FALSE); CuAssertTrue(tc, image->channels = 3); CuAssert(tc, "Image contents incorrect.", memcmp(reference, image->data, 4*4*4) == 0); Image_delete(image); }
int main() { fprintf(stderr, "Testing image loading and saving.\n"); Log_init(); Image* myimage = Image_newFromData(reference, sizeof(reference), 4, 4, 4); if (!Image_saveToFile(myimage, "test-image.png")) { fprintf(stderr, "Saving image failed.\n"); Image_delete(myimage); return 1; } Image* image = Image_new(); if (!Image_loadFromFile(image, "test-image.png")) { fprintf(stderr, "Loading image failed.\n"); Image_delete(image); return 1; } if (image->width * image->height * image->channels != image->size) { fprintf(stderr, "Image size incorrect.\n"); fprintf(stderr, "Image width: %i, height: %i, channels: %i, size %i \n", image->width, image->height, image->channels, image->size); return 1; } int i; int j; int k; for(i = 0; i < image->height; i++) { for(j = 0; j < image->width; j++) { for(k = 0; k < image->channels; k++) { if (image->data[(i * image->channels * image->width) + (j * image->channels) + k] != reference[(i * image->channels * image->width) + (j * image->channels) + k]) { fprintf(stderr, "Image loaded is not the same as refrence at (%i, %i, %i)\n", i, j, k); return 1; } } } } Image_delete(image); Log_terminate(); return 0; }
void Image_fillOut_shouldYieldCorrectImageFillingWidthAndHeight(CuTest* tc) { Image* image = Image_newFromData(reference, sizeof(reference), 4, 4, TRUE); Image_fillOut(image, 5, 5); CuAssertTrue(tc, image->width == 5); CuAssertTrue(tc, image->height == 5); CuAssertTrue(tc, image->channels == 4); CuAssertTrue(tc, image->size == 100); CuAssert(tc, "Image contents incorrect.", memcmp(referenceFilledOutHW, image->data, 100) == 0); Image_delete(image); }
void Image_fillOut_shouldYieldCorrectImageInTrivialCase(CuTest* tc) { Image* image = Image_newFromData(reference, sizeof(reference), 4, 4, TRUE); Image_fillOut(image, 4, 4); CuAssertTrue(tc, image->height == 4); CuAssertTrue(tc, image->width == 4); CuAssertTrue(tc, image->channels == 4); CuAssertTrue(tc, image->size == 64); CuAssert(tc, "Image contents incorrect.", memcmp(reference, image->data, 64) == 0); Image_delete(image); }
void Image_newFromData_works(CuTest* tc) { Image* image = Image_newFromData(reference, sizeof(reference), 4, 4, TRUE); CuAssert(tc, "Could not create image on the fly.", image != NULL); CuAssertTrue(tc, image->width == 4); CuAssertTrue(tc, image->height == 4); CuAssertTrue(tc, image->channels == 4); CuAssertTrue(tc, image->bpp == 4); CuAssertTrue(tc, image->size == 4*4*4); CuAssertTrue(tc, image->file == NULL); CuAssertTrue(tc, image->data != NULL); CuAssert(tc, "Image contents incorrect.", memcmp(reference, image->data, 4*4*4) == 0); Image_delete(image); }