#define CATCH_CONFIG_RUNNER
#include "test/test_init.h"
#include "test_pastelgfx.h"
#include <iostream>
#include "pastel/gfx/image_file.h"
#include "pastel/gfx/texture.h"
#include "pastel/gfx/color.h"
#include "pastel/gfx/mipmap.h"
#include "pastel/sys/extender/arrayextender.h"
#include "pastel/sys/extender/indexextenders.h"
int main(int argc, const char* argv[])
{
    Array<Color> textureImage;
    loadPcx("lena.pcx", textureImage);
    Array<real32> grayImage(textureImage.extent());
    std::transform(
        textureImage.begin(), textureImage.end(),
        grayImage.begin(), luma);
    MipMap<Color> mipMap(constArrayView(textureImage));
    EwaImage_Texture<Color> texture(mipMap, ArrayExtender<2, Color>(mirrorExtender()));
    //NearestImage_Texture<Color> texture(textureImage, ArrayExtender<2, Color>(mirrorExtender()));
    transform(mipMap, fitColor);
    //grayImage.setExtent(128, 128);
    gfxStorage().set("lena_gray", &grayImage);
    gfxStorage().set("lena_image", &textureImage);
    gfxStorage().set("lena_mipmap", &mipMap);
    gfxStorage().set("lena_texture", &texture);
    return Catch::Session().run(argc, argv);
}