blob: b1cbbfd72b4e76812114026740292ce0c9f529a3 [file] [log] [blame]
/* See LICENSE file for copyright and license details. */
#ifndef UTIL_H
#define UTIL_H
#include "../gen/types.h"
#include "../grapheme.h"
#undef MIN
#define MIN(x, y) ((x) < (y) ? (x) : (y))
#undef LEN
#define LEN(x) (sizeof(x) / sizeof(*(x)))
struct unit_test_next_break {
const char *description;
struct {
const uint_least32_t *src;
size_t srclen;
} input;
struct {
size_t ret;
} output;
};
struct unit_test_next_break_utf8 {
const char *description;
struct {
const char *src;
size_t srclen;
} input;
struct {
size_t ret;
} output;
};
int run_break_tests(size_t (*next_break)(const uint_least32_t *, size_t),
const struct break_test *test, size_t testlen,
const char *);
int run_unit_tests(int (*unit_test_callback)(const void *, size_t, const char *,
const char *),
const void *, size_t, const char *, const char *);
int unit_test_callback_next_break(const struct unit_test_next_break *, size_t,
size_t (*next_break)(const uint_least32_t *,
size_t),
const char *, const char *);
int unit_test_callback_next_break_utf8(const struct unit_test_next_break_utf8 *,
size_t,
size_t (*next_break_utf8)(const char *,
size_t),
const char *, const char *);
#endif /* UTIL_H */