#include <assert.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>

#include "zlib.h"

#define BUF_SIZE 0x1000

int main(int argc, char *argv[]) {

    FILE *fp;
    char *bufIn, *bufOut;
    int lIn, lOut, r;
    z_stream z;

    fp = fopen("test.z", "rb");
    assert(fp);

    bufIn = malloc(BUF_SIZE);

    lIn = fread(bufIn, 1, BUF_SIZE, fp);
    assert (lIn == 1238);

    lOut = lIn * 0xF;
    bufOut = malloc(lOut);

    setmem (&z, sizeof(z), 0);
    inflateInit(&z);
    z.next_in = bufIn;
    z.avail_in = lIn;
    z.next_out = bufOut;
    z.avail_out = 97; /* lOut; */

    r = inflate(&z, Z_PARTIAL_FLUSH);
    assert (r == Z_OK);

    inflateEnd (&z);

    free(bufOut);
    free(bufIn);

    fclose(fp);

    return 0;
}
