summaryrefslogtreecommitdiff
path: root/src/geometry/geometry.test.c
blob: bb06aeb2b27d3efa09dc45ecf968e63a9e19bbf3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <string.h>

#include <kalmia.h>
#include <ezxml.h>
#include "geometry.h"
#include "test/test.h"


LILY_FILE_BEGIN(geometry_suite)


LILY_TEST("parse float array")
{
	char str[1024];
	strncpy(
		str,
		"<float_array id=\"sequence\" count=\"5\">\n"
		"	-0.5 -0.25 0 0.25 0.5\n"
		"</float_array>",
		1024
	);

	ezxml_t tag = ezxml_parse_str(str, strlen(str)+1);

	struct ka_float_array_t float_array;
	kai_parse_float_array(&float_array, tag);

	CHECK_EQS(float_array.id, "sequence");
	REQUIRE_EQ(float_array.count, 5, "%ul");
	REQUIRE_NEQ(float_array.data, NULL, "%p");

	CHECK_EQ(float_array.data[0], -0.50, "%f");
	CHECK_EQ(float_array.data[1], -0.25, "%f");
	CHECK_EQ(float_array.data[2],  0.00, "%f");
	CHECK_EQ(float_array.data[3],  0.25, "%f");
	CHECK_EQ(float_array.data[4],  0.50, "%f");
}
#include LILY_PUSH_TEST()


#define LILY_FILE_END
#include LILY_REGISTER_TESTS()