diff --git a/imageInputTests.c b/imageInputTests.c index c704271..4d0bbfd 100644 --- a/imageInputTests.c +++ b/imageInputTests.c @@ -1,143 +1,134 @@ -#include -#include -#include -#include "unity.h" #include "imageInput.h" +#include "unity.h" +#include +#include +#include +static void prepareImageFile(const char *path, unsigned short int width, + unsigned short int height, + unsigned int short numberOfImages, + unsigned char label) { + FILE *file = fopen(path, "wb"); -static void prepareImageFile(const char *path, unsigned short int width, unsigned short int height, unsigned int short numberOfImages, unsigned char label) -{ - FILE *file = fopen(path, "wb"); + if (file != NULL) { + const char *fileTag = "__info2_image_file_format__"; + GrayScalePixelType *zeroBuffer = (GrayScalePixelType *)calloc( + numberOfImages * width * height, sizeof(GrayScalePixelType)); - if(file != NULL) - { - const char *fileTag = "__info2_image_file_format__"; - GrayScalePixelType *zeroBuffer = (GrayScalePixelType *)calloc(numberOfImages * width * height, sizeof(GrayScalePixelType)); + if (zeroBuffer != NULL) { + fwrite(fileTag, sizeof(fileTag[0]), strlen(fileTag), file); + fwrite(&numberOfImages, sizeof(numberOfImages), 1, file); + fwrite(&width, sizeof(width), 1, file); + fwrite(&height, sizeof(height), 1, file); - if(zeroBuffer != NULL) - { - fwrite(fileTag, sizeof(fileTag[0]), strlen(fileTag), file); - fwrite(&numberOfImages, sizeof(numberOfImages), 1, file); - fwrite(&width, sizeof(width), 1, file); - fwrite(&height, sizeof(height), 1, file); + for (int i = 0; i < numberOfImages; i++) { + fwrite(zeroBuffer, sizeof(GrayScalePixelType), width * height, file); + fwrite(&label, sizeof(unsigned char), 1, file); + } - for(int i = 0; i < numberOfImages; i++) - { - fwrite(zeroBuffer, sizeof(GrayScalePixelType), width * height, file); - fwrite(&label, sizeof(unsigned char), 1, file); - } - - free(zeroBuffer); - } - - fclose(file); + free(zeroBuffer); } + + fclose(file); + } } - -void test_readImagesReturnsCorrectNumberOfImages(void) -{ - GrayScaleImageSeries *series = NULL; - const unsigned short expectedNumberOfImages = 2; - const char *path = "testFile.info2"; - prepareImageFile(path, 8, 8, expectedNumberOfImages, 1); - series = readImages(path); - TEST_ASSERT_NOT_NULL(series); - TEST_ASSERT_EQUAL_UINT16(expectedNumberOfImages, series->count); - clearSeries(series); - remove(path); +void test_readImagesReturnsCorrectNumberOfImages(void) { + GrayScaleImageSeries *series = NULL; + const unsigned short expectedNumberOfImages = 2; + const char *path = "testFile.info2"; + prepareImageFile(path, 8, 8, expectedNumberOfImages, 1); + series = readImages(path); + TEST_ASSERT_NOT_NULL(series); + TEST_ASSERT_EQUAL_UINT16(expectedNumberOfImages, series->count); + clearSeries(series); + remove(path); } -void test_readImagesReturnsCorrectImageWidth(void) -{ - GrayScaleImageSeries *series = NULL; - const unsigned short expectedWidth = 10; - const char *path = "testFile.info2"; - prepareImageFile(path, 8, expectedWidth, 2, 1); - series = readImages(path); - TEST_ASSERT_NOT_NULL(series); - TEST_ASSERT_NOT_NULL(series->images); - TEST_ASSERT_EQUAL_UINT16(2, series->count); - TEST_ASSERT_EQUAL_UINT16(expectedWidth, series->images[0].width); - TEST_ASSERT_EQUAL_UINT16(expectedWidth, series->images[1].width); - clearSeries(series); - remove(path); +void test_readImagesReturnsCorrectImageWidth(void) { + GrayScaleImageSeries *series = NULL; + const unsigned short expectedWidth = 10; + const char *path = "testFile.info2"; + prepareImageFile(path, expectedWidth, 8, 2, 1); + series = readImages(path); + TEST_ASSERT_NOT_NULL(series); + TEST_ASSERT_NOT_NULL(series->images); + TEST_ASSERT_EQUAL_UINT16(2, series->count); + TEST_ASSERT_EQUAL_UINT16(expectedWidth, series->images[0].width); + TEST_ASSERT_EQUAL_UINT16(expectedWidth, series->images[1].width); + clearSeries(series); + remove(path); } -void test_readImagesReturnsCorrectImageHeight(void) -{ - GrayScaleImageSeries *series = NULL; - const unsigned short expectedHeight = 10; - const char *path = "testFile.info2"; - prepareImageFile(path, expectedHeight, 8, 2, 1); - series = readImages(path); - TEST_ASSERT_NOT_NULL(series); - TEST_ASSERT_NOT_NULL(series->images); - TEST_ASSERT_EQUAL_UINT16(2, series->count); - TEST_ASSERT_EQUAL_UINT16(expectedHeight, series->images[0].height); - TEST_ASSERT_EQUAL_UINT16(expectedHeight, series->images[1].height); - clearSeries(series); - remove(path); +void test_readImagesReturnsCorrectImageHeight(void) { + GrayScaleImageSeries *series = NULL; + const unsigned short expectedHeight = 10; + const char *path = "testFile.info2"; + prepareImageFile(path, 8, expectedHeight, 2, 1); + series = readImages(path); + TEST_ASSERT_NOT_NULL(series); + TEST_ASSERT_NOT_NULL(series->images); + TEST_ASSERT_EQUAL_UINT16(2, series->count); + TEST_ASSERT_EQUAL_UINT16(expectedHeight, series->images[0].height); + TEST_ASSERT_EQUAL_UINT16(expectedHeight, series->images[1].height); + clearSeries(series); + remove(path); } -void test_readImagesReturnsCorrectLabels(void) -{ - const unsigned char expectedLabel = 15; +void test_readImagesReturnsCorrectLabels(void) { + const unsigned char expectedLabel = 15; - GrayScaleImageSeries *series = NULL; - const char *path = "testFile.info2"; - prepareImageFile(path, 8, 8, 2, expectedLabel); - series = readImages(path); - TEST_ASSERT_NOT_NULL(series); - TEST_ASSERT_NOT_NULL(series->labels); - TEST_ASSERT_EQUAL_UINT16(2, series->count); - for (int i = 0; i < 2; i++) { - TEST_ASSERT_EQUAL_UINT8(expectedLabel, series->labels[i]); - } - clearSeries(series); - remove(path); + GrayScaleImageSeries *series = NULL; + const char *path = "testFile.info2"; + prepareImageFile(path, 8, 8, 2, expectedLabel); + series = readImages(path); + TEST_ASSERT_NOT_NULL(series); + TEST_ASSERT_NOT_NULL(series->labels); + TEST_ASSERT_EQUAL_UINT16(2, series->count); + for (int i = 0; i < 2; i++) { + TEST_ASSERT_EQUAL_UINT8(expectedLabel, series->labels[i]); + } + clearSeries(series); + remove(path); } -void test_readImagesReturnsNullOnNotExistingPath(void) -{ - const char *path = "testFile.txt"; - remove(path); +void test_readImagesReturnsNullOnNotExistingPath(void) { + const char *path = "testFile.txt"; + remove(path); + TEST_ASSERT_NULL(readImages(path)); +} + +void test_readImagesFailsOnWrongFileTag(void) { + const char *path = "testFile.info2"; + FILE *file = fopen(path, "w"); + if (file != NULL) { + fprintf(file, "some_tag "); + fclose(file); TEST_ASSERT_NULL(readImages(path)); -} - -void test_readImagesFailsOnWrongFileTag(void) -{ - const char *path = "testFile.info2"; - FILE *file = fopen(path, "w"); - if(file != NULL) - { - fprintf(file, "some_tag "); - fclose(file); - TEST_ASSERT_NULL(readImages(path)); - } - remove(path); + } + remove(path); } void setUp(void) { - // Falls notwendig, kann hier Vorbereitungsarbeit gemacht werden + // Falls notwendig, kann hier Vorbereitungsarbeit gemacht werden } void tearDown(void) { - // Hier kann Bereinigungsarbeit nach jedem Test durchgeführt werden + // Hier kann Bereinigungsarbeit nach jedem Test durchgeführt werden } -int main() -{ - UNITY_BEGIN(); - - printf("\n============================\nImage input tests\n============================\n"); - RUN_TEST(test_readImagesReturnsCorrectNumberOfImages); - RUN_TEST(test_readImagesReturnsCorrectImageWidth); - RUN_TEST(test_readImagesReturnsCorrectImageHeight); - RUN_TEST(test_readImagesReturnsCorrectLabels); - RUN_TEST(test_readImagesReturnsNullOnNotExistingPath); - RUN_TEST(test_readImagesFailsOnWrongFileTag); +int main() { + UNITY_BEGIN(); - return UNITY_END(); + printf("\n============================\nImage input " + "tests\n============================\n"); + RUN_TEST(test_readImagesReturnsCorrectNumberOfImages); + RUN_TEST(test_readImagesReturnsCorrectImageWidth); + RUN_TEST(test_readImagesReturnsCorrectImageHeight); + RUN_TEST(test_readImagesReturnsCorrectLabels); + RUN_TEST(test_readImagesReturnsNullOnNotExistingPath); + RUN_TEST(test_readImagesFailsOnWrongFileTag); + + return UNITY_END(); } \ No newline at end of file diff --git a/matrix.c b/matrix.c index ad00628..d2397f2 100644 --- a/matrix.c +++ b/matrix.c @@ -1,35 +1,47 @@ +#include "matrix.h" #include #include -#include "matrix.h" // TODO Matrix-Funktionen implementieren -Matrix createMatrix(unsigned int rows, unsigned int cols) -{ - +/*typedef struct { + + unsigned int rows; + unsigned int cols; + MatrixType *data; //Zeiger auf Speicherbereich Reihen*Spalten + +} Matrix;*/ + +Matrix createMatrix(unsigned int rows, unsigned int cols) { + MatrixType *data = + malloc(rows * cols * sizeof(MatrixType)); // Speicher reservieren, malloc + // liefert Zeiger auf Speicher + Matrix newMatrix = {rows, cols, data}; // neue Matric nach struct + return newMatrix; } -void clearMatrix(Matrix *matrix) -{ - +void clearMatrix(Matrix *matrix) { + + matrix->data = UNDEFINED_MATRIX_VALUE; + matrix->rows = UNDEFINED_MATRIX_VALUE; + matrix->cols = UNDEFINED_MATRIX_VALUE; + + free((*matrix).data); //Speicher freigeben + } -void setMatrixAt(MatrixType value, Matrix matrix, unsigned int rowIdx, unsigned int colIdx) -{ - +void setMatrixAt(MatrixType value, Matrix matrix, unsigned int rowIdx, + unsigned int colIdx) { + + float *rowPtr[matrix->rows] = (*matrix).data + + } + +MatrixType getMatrixAt(const Matrix matrix, unsigned int rowIdx, + unsigned int colIdx) {} + +Matrix add(const Matrix matrix1, const Matrix matrix2) { + // broadcasting } -MatrixType getMatrixAt(const Matrix matrix, unsigned int rowIdx, unsigned int colIdx) -{ - -} - -Matrix add(const Matrix matrix1, const Matrix matrix2) -{ - -} - -Matrix multiply(const Matrix matrix1, const Matrix matrix2) -{ - -} \ No newline at end of file +Matrix multiply(const Matrix matrix1, const Matrix matrix2) {} \ No newline at end of file diff --git a/matrix.h b/matrix.h index a00f419..184cfd2 100644 --- a/matrix.h +++ b/matrix.h @@ -7,7 +7,13 @@ typedef float MatrixType; // TODO Matrixtyp definieren +typedef struct { + unsigned int rows; + unsigned int cols; + MatrixType *data; //Zeiger auf Speicherbereich Reihen*Spalten + +} Matrix; Matrix createMatrix(unsigned int rows, unsigned int cols); void clearMatrix(Matrix *matrix);