summaryrefslogtreecommitdiffhomepage
path: root/tests/test_new_deq.c
diff options
context:
space:
mode:
authortylo <[email protected]>2021-09-17 11:24:39 +0200
committertylo <[email protected]>2021-09-17 11:24:39 +0200
commit2bed88914afe24dc3a245f398b321e8f236d23d7 (patch)
tree7724be6dff0e5d61189f3e890d4533e50309e48a /tests/test_new_deq.c
parentce75e57b326f6d6368b366760336b20e660f272f (diff)
downloadSTC-modified-2bed88914afe24dc3a245f398b321e8f236d23d7.tar.gz
STC-modified-2bed88914afe24dc3a245f398b321e8f236d23d7.zip
Moved tests and v1 files
Diffstat (limited to 'tests/test_new_deq.c')
-rw-r--r--tests/test_new_deq.c57
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/test_new_deq.c b/tests/test_new_deq.c
new file mode 100644
index 00000000..d1a5c2a6
--- /dev/null
+++ b/tests/test_new_deq.c
@@ -0,0 +1,57 @@
+#include <stc/cstr.h>
+#include <stc/forward.h>
+
+forward_cdeq(i32, int);
+forward_cdeq(pnt, struct Point);
+
+struct MyStruct {
+ cdeq_i32 intvec;
+ cdeq_pnt pntvec;
+} typedef MyStruct;
+
+
+#define F_tag i32
+#define i_val int
+#include <stc/cdeq.h>
+
+struct Point { int x, y; } typedef Point;
+int point_compare(const Point* a, const Point* b) {
+ int c = c_default_compare(&a->x, &b->x);
+ return c ? c : c_default_compare(&a->y, &b->y);
+}
+#define F_tag pnt
+#define i_val Point
+#define i_cmp point_compare
+#include <stc/cdeq.h>
+
+#define i_val float
+#include <stc/cdeq.h>
+
+#define i_val_str
+#include <stc/cdeq.h>
+
+
+int main()
+{
+ cdeq_i32 vec = cdeq_i32_init();
+ cdeq_i32_push_back(&vec, 123);
+ cdeq_i32_del(&vec);
+
+ cdeq_float fvec = cdeq_float_init();
+ cdeq_float_push_back(&fvec, 123.3);
+ cdeq_float_del(&fvec);
+
+ cdeq_pnt pvec = cdeq_pnt_init();
+ cdeq_pnt_push_back(&pvec, (Point){42, 14});
+ cdeq_pnt_push_back(&pvec, (Point){32, 94});
+ cdeq_pnt_push_front(&pvec, (Point){62, 81});
+ cdeq_pnt_sort(&pvec);
+ c_foreach (i, cdeq_pnt, pvec)
+ printf(" (%d %d)", i.ref->x, i.ref->y);
+ puts("");
+ cdeq_pnt_del(&pvec);
+
+ cdeq_str svec = cdeq_str_init();
+ cdeq_str_emplace_back(&svec, "Hello, friend");
+ cdeq_str_del(&svec);
+} \ No newline at end of file