From 12915304570507e00848aba700f0ed3a26dbb9b6 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Thu, 13 Jul 2023 15:34:49 -0400 Subject: Initial commit of VPTree-related code Point lookups are currently broken; I suspect that there is something wrong with tree construction, although the quickselect implementation seems to be fine. --- tests/testing.h | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) (limited to 'tests/testing.h') diff --git a/tests/testing.h b/tests/testing.h index fe6623e..1d5db59 100644 --- a/tests/testing.h +++ b/tests/testing.h @@ -23,6 +23,7 @@ typedef de::WeightedRecord WRec; typedef de::Record Rec; +typedef de::Point PRec; template std::vector strip_wrapping(std::vector> vec) { @@ -75,7 +76,26 @@ static bool roughly_equal(int n1, int n2, size_t mag, double epsilon) { return ((double) std::abs(n1 - n2) / (double) mag) < epsilon; } -template +static de::MutableBuffer *create_2d_mbuffer(size_t cnt) { + auto buffer = new de::MutableBuffer(cnt, cnt); + + for (int64_t i=0; iappend({rand(), rand()}); + } + + return buffer; +} + +static de::MutableBuffer *create_2d_sequential_mbuffer(size_t cnt) { + auto buffer = new de::MutableBuffer(cnt, cnt); + for (int64_t i=0; iappend({i, i}); + } + + return buffer; +} + +template static de::MutableBuffer *create_test_mbuffer(size_t cnt) { auto buffer = new de::MutableBuffer(cnt, cnt); @@ -95,7 +115,7 @@ static de::MutableBuffer *create_test_mbuffer(size_t cnt) return buffer; } -template +template static de::MutableBuffer *create_sequential_mbuffer(decltype(R::key) start, decltype(R::key) stop) { size_t cnt = stop - start; @@ -116,7 +136,7 @@ static de::MutableBuffer *create_sequential_mbuffer(decltype(R::key) start, d return buffer; } -template +template static de::MutableBuffer *create_test_mbuffer_tombstones(size_t cnt, size_t ts_cnt) { auto buffer = new de::MutableBuffer(cnt, ts_cnt); @@ -147,7 +167,8 @@ static de::MutableBuffer *create_test_mbuffer_tombstones(size_t cnt, size_t t return buffer; } -template +template +requires de::WeightedRecordInterface && de::KVPInterface static de::MutableBuffer *create_weighted_mbuffer(size_t cnt) { auto buffer = new de::MutableBuffer(cnt, cnt); @@ -170,7 +191,7 @@ static de::MutableBuffer *create_weighted_mbuffer(size_t cnt) return buffer; } -template +template static de::MutableBuffer *create_double_seq_mbuffer(size_t cnt, bool ts=false) { auto buffer = new de::MutableBuffer(cnt, cnt); -- cgit v1.2.3