/*
 * C-frontend H-Lib parity smoke test.
 * Compile and run via PBXB64's C frontend.
 */

#include <pbxb64/hlib.h>

int main(void)
{
    c_hlib_lnarr_t a;

    a = c_hlib_lnarr_new();
    if (a == 0) return 1;

    c_hlib_lnarr_add(a, 10);
    c_hlib_lnarr_add(a, 20);
    c_hlib_lnarr_add(a, 30);

    if (c_hlib_lnarr_count(a) != 3) {
        c_hlib_lnarr_final(a);
        return 2;
    }

    if (c_hlib_lnarr_get(a, 1) != 10) {
        c_hlib_lnarr_final(a);
        return 3;
    }

    if (c_hlib_lnarr_get(a, 2) != 20) {
        c_hlib_lnarr_final(a);
        return 4;
    }

    if (c_hlib_lnarr_get(a, 3) != 30) {
        c_hlib_lnarr_final(a);
        return 5;
    }

    if (!c_hlib_lnarr_contains(a, 20)) {
        c_hlib_lnarr_final(a);
        return 6;
    }

    c_hlib_lnarr_set(a, 2, 99);
    if (c_hlib_lnarr_get(a, 2) != 99) {
        c_hlib_lnarr_final(a);
        return 7;
    }

    c_hlib_lnarr_final(a);
    return 0;
}
