Exemple #1
0
void test_stamp_gen_nonlinear()
{
    static float ones[] = {
        1.0f, 1.0f, 1.0f,
        1.0f, 1.0f, 1.0f,
        1.0f, 1.0f, 1.0f,
    };

    static float halfs[] = {
        0.5f, 0.5f, 0.5f,
        0.5f, 0.5f, 0.5f,
        0.5f, 0.5f, 0.5f,
    };

    static float zeros[] = {
        0.0f, 0.0f, 0.0f,
        0.0f, 0.0f, 0.0f,
        0.0f, 0.0f, 0.0f,
    };

    heatmap_stamp_t* s1 = heatmap_stamp_gen_nonlinear(1, [](float){return 0.5f;});
    heatmap_stamp_t* s2 = heatmap_stamp_gen_nonlinear(1, [](float){return -1.0f;});
    heatmap_stamp_t* s3 = heatmap_stamp_gen_nonlinear(1, [](float){return 10.0f;});

    ENSURE_THAT("the 1-radius nonlinear .5-stamp size is correct", s1->w == 3 && s1->h == 3);
    ENSURE_THAT("the 1-radius nonlinear -1-stamp size is correct", s2->w == 3 && s2->h == 3);
    ENSURE_THAT("the 1-radius nonlinear 10-stamp size is correct", s3->w == 3 && s3->h == 3);
    ENSURE_THAT("the 1-radius nonlinear .5-stamp data is correct", stamp_eq(s1, halfs));
    ENSURE_THAT("the 1-radius nonlinear -1-stamp data is correct", stamp_eq(s2, ones));
    ENSURE_THAT("the 1-radius nonlinear 10-stamp data is correct", stamp_eq(s3, zeros));

    heatmap_stamp_free(s1);
    heatmap_stamp_free(s2);
    heatmap_stamp_free(s3);
}
Exemple #2
0
heatmap_stamp_t* heatmap_stamp_gen(unsigned r)
{
    return heatmap_stamp_gen_nonlinear(r, linear_dist);
}