From c9faab354fb314bacd9849503d8b4566a8c9ea62 Mon Sep 17 00:00:00 2001 From: Determinant Date: Tue, 31 Jul 2018 13:09:50 -0400 Subject: add cmake options --- test/.gitignore | 2 +- test/CMakeLists.txt | 4 +-- test/test_bits.cpp | 85 ++++++++++++++++++++++++++++++++++++++++++++++++++++ test/test_stream.cpp | 85 ---------------------------------------------------- 4 files changed, 88 insertions(+), 88 deletions(-) create mode 100644 test/test_bits.cpp delete mode 100644 test/test_stream.cpp (limited to 'test') diff --git a/test/.gitignore b/test/.gitignore index bc79950..2cd44f2 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -1,5 +1,5 @@ test_msg -test_stream +test_bits test_network bench_network Makefile diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 58d204f..9689df3 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -23,8 +23,8 @@ add_executable(test_msg test_msg.cpp) target_link_libraries(test_msg salticidae_static) -add_executable(test_stream test_stream.cpp) -target_link_libraries(test_stream salticidae_static) +add_executable(test_bits test_bits.cpp) +target_link_libraries(test_bits salticidae_static) add_executable(test_network test_network.cpp) target_link_libraries(test_network salticidae_static) diff --git a/test/test_bits.cpp b/test/test_bits.cpp new file mode 100644 index 0000000..7128a9a --- /dev/null +++ b/test/test_bits.cpp @@ -0,0 +1,85 @@ +/** + * Copyright (c) 2018 Cornell University. + * + * Author: Ted Yin + * + * Permission is hereby granted, free of charge, to any person obtaining a copy of + * this software and associated documentation files (the "Software"), to deal in + * the Software without restriction, including without limitation the rights to + * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies + * of the Software, and to permit persons to whom the Software is furnished to do + * so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include "salticidae/stream.h" + +using salticidae::DataStream; +using salticidae::get_hash; +using salticidae::get_hex; +using salticidae::Bits; + +void print(const Bits &a, int n) { + for (int i = 0; i < n; i++) + printf("%d", a.get(i)); + puts(""); +} + +int main() { + int n = 80; + Bits a(n); + for (int i = 0; i < n; i++) + { + a.set(i); + print(a, n); + } + for (int i = n - 1; i >= 0; i--) + { + a.unset(i); + print(a, n); + } + std::vector idxs; + for (int i = 0; i < 1000; i++) + { + idxs.push_back(rand() % n); + a.flip(idxs.back()); + print(a, n); + } + for (auto idx: idxs) + { + a.flip(idx); + print(a, n); + } + for (int i = 0; i < n; i++) + if (i & 1) a.set(i); + print(a, n); + for (int i = 0; i < n; i++) + if (i & 1) a.unset(i); + else a.set(i); + print(a, n); + printf("%s size: %d\n", get_hex(a).c_str(), a.size()); + DataStream s; + s << a; + Bits b; + s >> b; + Bits c(b); + Bits d(std::move(c)); + printf("%s\n", get_hex(b).c_str()); + print(b, b.size()); + Bits e(4); + e.set(0); + e.set(1); + print(e, e.size()); + return 0; +} diff --git a/test/test_stream.cpp b/test/test_stream.cpp deleted file mode 100644 index 7128a9a..0000000 --- a/test/test_stream.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/** - * Copyright (c) 2018 Cornell University. - * - * Author: Ted Yin - * - * Permission is hereby granted, free of charge, to any person obtaining a copy of - * this software and associated documentation files (the "Software"), to deal in - * the Software without restriction, including without limitation the rights to - * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies - * of the Software, and to permit persons to whom the Software is furnished to do - * so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -#include -#include "salticidae/stream.h" - -using salticidae::DataStream; -using salticidae::get_hash; -using salticidae::get_hex; -using salticidae::Bits; - -void print(const Bits &a, int n) { - for (int i = 0; i < n; i++) - printf("%d", a.get(i)); - puts(""); -} - -int main() { - int n = 80; - Bits a(n); - for (int i = 0; i < n; i++) - { - a.set(i); - print(a, n); - } - for (int i = n - 1; i >= 0; i--) - { - a.unset(i); - print(a, n); - } - std::vector idxs; - for (int i = 0; i < 1000; i++) - { - idxs.push_back(rand() % n); - a.flip(idxs.back()); - print(a, n); - } - for (auto idx: idxs) - { - a.flip(idx); - print(a, n); - } - for (int i = 0; i < n; i++) - if (i & 1) a.set(i); - print(a, n); - for (int i = 0; i < n; i++) - if (i & 1) a.unset(i); - else a.set(i); - print(a, n); - printf("%s size: %d\n", get_hex(a).c_str(), a.size()); - DataStream s; - s << a; - Bits b; - s >> b; - Bits c(b); - Bits d(std::move(c)); - printf("%s\n", get_hex(b).c_str()); - print(b, b.size()); - Bits e(4); - e.set(0); - e.set(1); - print(e, e.size()); - return 0; -} -- cgit v1.2.3-70-g09d2