summaryrefslogtreecommitdiffstats
path: root/tests/testing.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testing.h')
-rw-r--r--tests/testing.h218
1 files changed, 0 insertions, 218 deletions
diff --git a/tests/testing.h b/tests/testing.h
deleted file mode 100644
index 4e660dd..0000000
--- a/tests/testing.h
+++ /dev/null
@@ -1,218 +0,0 @@
-/*
- * tests/testing.h
- *
- * Unit test utility functions/definitions
- *
- * Copyright (C) 2023 Douglas Rumbaugh <drumbaugh@psu.edu>
- * Dong Xie <dongx@psu.edu>
- *
- * Distributed under the Modified BSD License.
- *
- */
-#pragma once
-
-#include <string>
-
-#include <unistd.h>
-#include <fcntl.h>
-
-#include "util/types.h"
-#include "psu-util/alignment.h"
-#include "framework/structure/MutableBuffer.h"
-#include "framework/interface/Record.h"
-
-typedef de::WeightedRecord<uint64_t, uint32_t, uint64_t> WRec;
-typedef de::Record<uint64_t, uint32_t> Rec;
-typedef de::EuclidPoint<int64_t> PRec;
-
-template <de::RecordInterface R>
-std::vector<R> strip_wrapping(std::vector<de::Wrapped<R>> vec) {
- std::vector<R> out(vec.size());
- for (size_t i=0; i<vec.size(); i++) {
- out[i] = vec[i].rec;
- }
-
- return out;
-}
-
-static bool initialize_test_file(std::string fname, size_t page_cnt)
-{
- auto flags = O_RDWR | O_CREAT | O_TRUNC;
- mode_t mode = 0640;
- char *page = nullptr;
-
- int fd = open(fname.c_str(), flags, mode);
- if (fd == -1) {
- goto error;
- }
-
- page = (char *) aligned_alloc(psudb::SECTOR_SIZE, psudb::PAGE_SIZE);
- if (!page) {
- goto error_opened;
- }
-
- for (size_t i=0; i<=page_cnt; i++) {
- *((int *) page) = i;
- if (write(fd, page, psudb::PAGE_SIZE) == -1) {
- goto error_alloced;
- }
- }
-
- free(page);
-
- return 1;
-
-error_alloced:
- free(page);
-
-error_opened:
- close(fd);
-
-error:
- return 0;
-}
-
-static bool roughly_equal(int n1, int n2, size_t mag, double epsilon) {
- return ((double) std::abs(n1 - n2) / (double) mag) < epsilon;
-}
-
-static de::MutableBuffer<PRec> *create_2d_mbuffer(size_t cnt) {
- auto buffer = new de::MutableBuffer<PRec>(cnt/2, cnt);
-
- for (int64_t i=0; i<cnt; i++) {
- buffer->append({rand(), rand()});
- }
-
- return buffer;
-}
-
-static de::MutableBuffer<PRec> *create_2d_sequential_mbuffer(size_t cnt) {
- auto buffer = new de::MutableBuffer<PRec>(cnt/2, cnt);
- for (int64_t i=0; i<cnt; i++) {
- buffer->append({i, i});
- }
-
- return buffer;
-}
-
-template <de::KVPInterface R>
-static de::MutableBuffer<R> *create_test_mbuffer(size_t cnt)
-{
- auto buffer = new de::MutableBuffer<R>(cnt/2, cnt);
-
- R rec;
- for (size_t i = 0; i < cnt; i++) {
- rec.key = rand();
- rec.value = rand();
-
- if constexpr (de::WeightedRecordInterface<R>) {
- rec.weight = 1;
- }
-
- buffer->append(rec);
- }
-
- return buffer;
-}
-
-template <de::KVPInterface R>
-static de::MutableBuffer<R> *create_sequential_mbuffer(decltype(R::key) start, decltype(R::key) stop)
-{
- size_t cnt = stop - start;
- auto buffer = new de::MutableBuffer<R>(cnt/2, cnt);
-
- for (size_t i=start; i<stop; i++) {
- R rec;
- rec.key = i;
- rec.value = i;
-
- if constexpr (de::WeightedRecordInterface<R>) {
- rec.weight = 1;
- }
-
- buffer->append(rec);
- }
-
- return buffer;
-}
-
-template <de::KVPInterface R>
-static de::MutableBuffer<R> *create_test_mbuffer_tombstones(size_t cnt, size_t ts_cnt)
-{
- auto buffer = new de::MutableBuffer<R>(cnt/2, cnt);
-
- std::vector<std::pair<uint64_t, uint32_t>> tombstones;
-
- R rec;
- for (size_t i = 0; i < cnt; i++) {
- rec.key = rand();
- rec.value = rand();
-
- if constexpr (de::WeightedRecordInterface<R>) {
- rec.weight = 1;
- }
-
- if (i < ts_cnt) {
- tombstones.push_back({rec.key, rec.value});
- }
-
- buffer->append(rec);
- }
-
- rec.set_tombstone();
- for (size_t i=0; i<ts_cnt; i++) {
- buffer->append(rec);
- }
-
- return buffer;
-}
-
-template <typename R>
-requires de::WeightedRecordInterface<R> && de::KVPInterface<R>
-static de::MutableBuffer<R> *create_weighted_mbuffer(size_t cnt)
-{
- auto buffer = new de::MutableBuffer<R>(cnt/2, cnt);
-
- // Put in half of the count with weight one.
- for (uint32_t i=0; i< cnt / 2; i++) {
- buffer->append(R {1, i, 2});
- }
-
- // put in a quarter of the count with weight four.
- for (uint32_t i=0; i< cnt / 4; i++) {
- buffer->append(R {2, i, 4});
- }
-
- // the remaining quarter with weight eight.
- for (uint32_t i=0; i< cnt / 4; i++) {
- buffer->append(R {3, i, 8});
- }
-
- return buffer;
-}
-
-template <de::KVPInterface R>
-static de::MutableBuffer<R> *create_double_seq_mbuffer(size_t cnt, bool ts=false)
-{
- auto buffer = new de::MutableBuffer<R>(cnt/2, cnt);
-
- for (size_t i = 0; i < cnt / 2; i++) {
- R rec;
- rec.key = i;
- rec.value = i;
-
- buffer->append(rec, ts);
- }
-
- for (size_t i = 0; i < cnt / 2; i++) {
- R rec;
- rec.key = i;
- rec.value = i + 1;
-
- buffer->append(rec, ts);
- }
-
- return buffer;
-}
-
-