The open source OpenXR runtime
1// Copyright 2022, Collabora, Ltd.
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief Test u_vector C interface.
6 * @author Mateo de Mayo <mateo.demayo@collabora.com>
7 */
8
9#include "catch_amalgamated.hpp"
10#include "util/u_vector.h"
11
12TEST_CASE("u_vector")
13{
14 SECTION("Test interface generated from macros")
15 {
16 struct u_vector_float vf = u_vector_float_create();
17 CHECK(vf.ptr != NULL);
18
19 constexpr float A = 2.71f;
20 constexpr float B = 1.61f;
21 constexpr float C = 3.14f;
22
23 u_vector_float_push_back(vf, A);
24 u_vector_float_push_back(vf, B);
25 u_vector_float_push_back(vf, C);
26
27 float a = u_vector_float_at(vf, 0);
28 float b = u_vector_float_at(vf, 1);
29 float c = u_vector_float_at(vf, 2);
30
31 CHECK(a == A);
32 CHECK(b == B);
33 CHECK(c == C);
34
35 u_vector_float_destroy(&vf);
36 CHECK(vf.ptr == NULL);
37 }
38}