tests/plover/test-vector.c
author J. Ali Harlow <ali@juiblex.co.uk>
Fri Jun 24 17:48:44 2016 +0100 (2016-06-24)
changeset 47 2d0ee44ab3c6
permissions -rw-r--r--
Remove debugging
ali@38
     1
/*
ali@38
     2
 * Copyright (C) 2016  J. Ali Harlow <ali@juiblex.co.uk>
ali@38
     3
 *
ali@38
     4
 * This program is free software; you can redistribute it and/or modify
ali@38
     5
 * it under the terms of the GNU General Public License as published by
ali@38
     6
 * the Free Software Foundation; either version 2 of the License, or
ali@38
     7
 * (at your option) any later version.
ali@38
     8
 *
ali@38
     9
 * This program is distributed in the hope that it will be useful,
ali@38
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
ali@38
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
ali@38
    12
 * GNU General Public License for more details.
ali@38
    13
 *
ali@38
    14
 * You should have received a copy of the GNU General Public License along
ali@38
    15
 * with this program; if not, write to the Free Software Foundation, Inc.,
ali@38
    16
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
ali@38
    17
 */
ali@38
    18
ali@38
    19
#include <stdlib.h>
ali@38
    20
#include <glib.h>
ali@38
    21
#include <razor.h>
ali@38
    22
#include <plover/plover.h>
ali@38
    23
ali@38
    24
static void test_empty(void)
ali@38
    25
{
ali@38
    26
    struct plover_vector *vector;
ali@38
    27
    char *display;
ali@38
    28
    vector=plover_vector_new();
ali@38
    29
    g_assert(vector);
ali@38
    30
    display=plover_vector_format_for_display(vector);
ali@38
    31
    g_assert_cmpstr(display,==,"none");
ali@38
    32
    free(display);
ali@38
    33
    plover_vector_free(vector);
ali@38
    34
}
ali@38
    35
ali@38
    36
static void test_single(void)
ali@38
    37
{
ali@38
    38
    struct plover_vector *vector;
ali@38
    39
    char *display;
ali@38
    40
    vector=plover_vector_new();
ali@38
    41
    g_assert(vector);
ali@38
    42
    plover_vector_append(vector,"single");
ali@38
    43
    display=plover_vector_format_for_display(vector);
ali@38
    44
    g_assert_cmpstr(display,==,"single");
ali@38
    45
    free(display);
ali@38
    46
    plover_vector_free(vector);
ali@38
    47
}
ali@38
    48
ali@38
    49
static void test_pair(void)
ali@38
    50
{
ali@38
    51
    struct plover_vector *vector;
ali@38
    52
    char *display;
ali@38
    53
    vector=plover_vector_new();
ali@38
    54
    g_assert(vector);
ali@38
    55
    plover_vector_append(vector,"one");
ali@38
    56
    plover_vector_append(vector,"two");
ali@38
    57
    display=plover_vector_format_for_display(vector);
ali@38
    58
    g_assert_cmpstr(display,==,"one and two");
ali@38
    59
    free(display);
ali@38
    60
    plover_vector_free(vector);
ali@38
    61
}
ali@38
    62
ali@38
    63
static void test_triple(void)
ali@38
    64
{
ali@38
    65
    struct plover_vector *vector;
ali@38
    66
    char *display;
ali@38
    67
    vector=plover_vector_new();
ali@38
    68
    g_assert(vector);
ali@38
    69
    plover_vector_append(vector,"one");
ali@38
    70
    plover_vector_append(vector,"two");
ali@38
    71
    plover_vector_append(vector,"three");
ali@38
    72
    display=plover_vector_format_for_display(vector);
ali@38
    73
    g_assert_cmpstr(display,==,"one, two and three");
ali@38
    74
    free(display);
ali@38
    75
    plover_vector_free(vector);
ali@38
    76
}
ali@38
    77
ali@38
    78
static void test_sort(void)
ali@38
    79
{
ali@38
    80
    struct plover_vector *vector;
ali@38
    81
    char *display;
ali@38
    82
    vector=plover_vector_new();
ali@38
    83
    g_assert(vector);
ali@38
    84
    plover_vector_append(vector,"one");
ali@38
    85
    plover_vector_append(vector,"two");
ali@38
    86
    plover_vector_append(vector,"three");
ali@38
    87
    plover_vector_sort(vector);
ali@38
    88
    display=plover_vector_format_for_display(vector);
ali@38
    89
    g_assert_cmpstr(display,==,"one, three and two");
ali@38
    90
    free(display);
ali@38
    91
    plover_vector_free(vector);
ali@38
    92
}
ali@38
    93
ali@38
    94
static void test_dup(void)
ali@38
    95
{
ali@38
    96
    struct plover_vector *vector,*vector2;
ali@38
    97
    char *display;
ali@38
    98
    vector=plover_vector_new();
ali@38
    99
    g_assert(vector);
ali@38
   100
    plover_vector_append(vector,"one");
ali@38
   101
    plover_vector_append(vector,"two");
ali@38
   102
    plover_vector_append(vector,"three");
ali@38
   103
    vector2=plover_vector_dup(vector);
ali@38
   104
    plover_vector_sort(vector2);
ali@38
   105
    display=plover_vector_format_for_display(vector);
ali@38
   106
    g_assert_cmpstr(display,==,"one, two and three");
ali@38
   107
    free(display);
ali@38
   108
    display=plover_vector_format_for_display(vector2);
ali@38
   109
    g_assert_cmpstr(display,==,"one, three and two");
ali@38
   110
    free(display);
ali@38
   111
    plover_vector_free(vector);
ali@38
   112
    plover_vector_free(vector2);
ali@38
   113
}
ali@38
   114
ali@38
   115
static void test_contains(void)
ali@38
   116
{
ali@38
   117
    struct plover_vector *vector;
ali@38
   118
    vector=plover_vector_new();
ali@38
   119
    g_assert(vector);
ali@38
   120
    plover_vector_append(vector,"one");
ali@38
   121
    plover_vector_append(vector,"two");
ali@38
   122
    plover_vector_append(vector,"three");
ali@38
   123
    g_assert(plover_vector_contains(vector,"one"));
ali@38
   124
    g_assert(plover_vector_contains(vector,"two"));
ali@38
   125
    g_assert(plover_vector_contains(vector,"three"));
ali@38
   126
    g_assert(!plover_vector_contains(vector,"four"));
ali@38
   127
    plover_vector_free(vector);
ali@38
   128
}
ali@38
   129
ali@38
   130
static void test_long(void)
ali@38
   131
{
ali@38
   132
    int i;
ali@38
   133
    struct plover_vector *vector;
ali@38
   134
    char letter[2],*display;
ali@38
   135
    vector=plover_vector_new();
ali@38
   136
    g_assert(vector);
ali@38
   137
    letter[1]=0;
ali@38
   138
    for(i=0;i<26;i++)
ali@38
   139
    {
ali@38
   140
	letter[0]='a'+i;
ali@38
   141
	plover_vector_append(vector,letter);
ali@38
   142
    }
ali@38
   143
    display=plover_vector_format_for_display(vector);
ali@38
   144
    g_assert_cmpstr(display,==,"a, b, c, d, e, f, g, h, i, j, k, l, "
ali@38
   145
      "m, n, o, p, q, r, s, t, u, v, w, x, y and z");
ali@38
   146
    free(display);
ali@38
   147
    plover_vector_free(vector);
ali@38
   148
}
ali@38
   149
ali@38
   150
int main(int argc,char **argv)
ali@38
   151
{
ali@38
   152
    int retval;
ali@38
   153
    g_test_init(&argc,&argv,NULL);
ali@38
   154
    g_test_bug_base("mailto:ali@juiblex.co.uk");
ali@38
   155
    g_test_add_func("/vector/empty",test_empty);
ali@38
   156
    g_test_add_func("/vector/single",test_single);
ali@38
   157
    g_test_add_func("/vector/pair",test_pair);
ali@38
   158
    g_test_add_func("/vector/triple",test_triple);
ali@38
   159
    g_test_add_func("/vector/sort",test_sort);
ali@38
   160
    g_test_add_func("/vector/dup",test_dup);
ali@38
   161
    g_test_add_func("/vector/contains",test_contains);
ali@38
   162
    g_test_add_func("/vector/long",test_long);
ali@38
   163
    retval=g_test_run();
ali@38
   164
    return retval;
ali@38
   165
}