Skip to content
Snippets Groups Projects
empty.c 1.93 KiB
Newer Older
Bruce Cowan's avatar
Bruce Cowan committed
/* empty.c
 *
 * Copyright 2018 Bruce Cowan <bruce@bcowan.me.uk>
 *
Bruce Cowan's avatar
Bruce Cowan committed
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
Bruce Cowan's avatar
Bruce Cowan committed
 *
Bruce Cowan's avatar
Bruce Cowan committed
 *     http://www.apache.org/licenses/LICENSE-2.0
Bruce Cowan's avatar
Bruce Cowan committed
 *
Bruce Cowan's avatar
Bruce Cowan committed
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
Bruce Cowan's avatar
Bruce Cowan committed
 *
Bruce Cowan's avatar
Bruce Cowan committed
 * SPDX-License-Identifier: Apache-2.0
Bruce Cowan's avatar
Bruce Cowan committed
 */

#include <glib.h>

#include "array.h"

static void
test_length (void)
Bruce Cowan's avatar
Bruce Cowan committed
{
    Array *array = array_new (NULL);
Bruce Cowan's avatar
Bruce Cowan committed

    size_t length = array_get_length (array);
Bruce Cowan's avatar
Bruce Cowan committed
    g_assert_cmpint (length, ==, 0);

    array_unref (array);
Bruce Cowan's avatar
Bruce Cowan committed
}

static void
test_remove_fast (void)
Bruce Cowan's avatar
Bruce Cowan committed
{
    Array *array = array_new (NULL);

    gboolean success = array_remove_fast (array, 1);
Bruce Cowan's avatar
Bruce Cowan committed
    g_assert_false (success);

    array_unref (array);
Bruce Cowan's avatar
Bruce Cowan committed
}

static void
test_remove (void)
Bruce Cowan's avatar
Bruce Cowan committed
{
    Array *array = array_new (NULL);

    gboolean success = array_remove (array, 1);
Bruce Cowan's avatar
Bruce Cowan committed
    g_assert_false (success);

    array_unref (array);
Bruce Cowan's avatar
Bruce Cowan committed
}

static void
test_get (void)
Bruce Cowan's avatar
Bruce Cowan committed
{
    Array *array = array_new (NULL);
Bruce Cowan's avatar
Bruce Cowan committed

    const void *element = array_get (array, 1);
Bruce Cowan's avatar
Bruce Cowan committed
    g_assert_null (element);

    array_unref (array);
Bruce Cowan's avatar
Bruce Cowan committed
}

static void
test_set (void)
Bruce Cowan's avatar
Bruce Cowan committed
{
    Array *array = array_new (NULL);

    gboolean success = array_set (array, 1, NULL);
Bruce Cowan's avatar
Bruce Cowan committed
    g_assert_false (success);

    array_unref (array);
Bruce Cowan's avatar
Bruce Cowan committed
}

int
main (int    argc,
      char **argv)
{
    g_test_init (&argc, &argv, NULL);

    g_test_add_func ("/array/length", test_length);
    g_test_add_func ("/array/remove_fast", test_remove_fast);
    g_test_add_func ("/array/remove", test_remove);
    g_test_add_func ("/array/get", test_get);
    g_test_add_func ("/array/set", test_set);
Bruce Cowan's avatar
Bruce Cowan committed

    return g_test_run ();
}