HW2: (WIP) Checkpoint with code re-arrangement and elbowSort
This commit is contained in:
@@ -11,7 +11,7 @@
|
||||
|
||||
#include <algorithm> // rand/srand
|
||||
#include <ctime> // rand/srand
|
||||
#include "distbitonic.hpp"
|
||||
#include "distsort.hpp"
|
||||
|
||||
|
||||
|
||||
@@ -245,8 +245,8 @@ TEST(TdistBitonic_UT, keepsmall_test1) {
|
||||
*/
|
||||
TEST(TdistBitonic_UT, keepsmall_test2) {
|
||||
size_t ts_depth = 1;
|
||||
mpi_id_t ts_partner[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||
bool ts_expected[] = {1, 0, 0, 1, 1, 0, 0, 1};
|
||||
mpi_id_t ts_partner[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||
bool ts_expected[] = {1, 0, 0, 1, 1, 0, 0, 1};
|
||||
|
||||
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||
@@ -260,8 +260,8 @@ TEST(TdistBitonic_UT, keepsmall_test2) {
|
||||
*/
|
||||
TEST(TdistBitonic_UT, keepsmall_test3) {
|
||||
size_t ts_depth = 2;
|
||||
mpi_id_t ts_partner[] = {2, 3, 0, 1, 6, 7, 4, 5};
|
||||
bool ts_expected[] = {1, 1, 0, 0, 0, 0, 1, 1};
|
||||
mpi_id_t ts_partner[] = {2, 3, 0, 1, 6, 7, 4, 5};
|
||||
bool ts_expected[] = {1, 1, 0, 0, 0, 0, 1, 1};
|
||||
|
||||
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||
@@ -275,8 +275,8 @@ TEST(TdistBitonic_UT, keepsmall_test3) {
|
||||
*/
|
||||
TEST(TdistBitonic_UT, keepsmall_test4) {
|
||||
size_t ts_depth = 2;
|
||||
mpi_id_t ts_partner[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||
bool ts_expected[] = {1, 0, 1, 0, 0, 1, 0, 1};
|
||||
mpi_id_t ts_partner[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||
bool ts_expected[] = {1, 0, 1, 0, 0, 1, 0, 1};
|
||||
|
||||
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||
@@ -290,8 +290,8 @@ TEST(TdistBitonic_UT, keepsmall_test4) {
|
||||
*/
|
||||
TEST(TdistBitonic_UT, keepsmall_test5) {
|
||||
size_t ts_depth = 3;
|
||||
mpi_id_t ts_partner[] = {4, 5, 6, 7, 0, 1, 2, 3};
|
||||
bool ts_expected[] = {1, 1, 1, 1, 0, 0, 0, 0};
|
||||
mpi_id_t ts_partner[] = {4, 5, 6, 7, 0, 1, 2, 3};
|
||||
bool ts_expected[] = {1, 1, 1, 1, 0, 0, 0, 0};
|
||||
|
||||
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||
@@ -305,8 +305,8 @@ TEST(TdistBitonic_UT, keepsmall_test5) {
|
||||
*/
|
||||
TEST(TdistBitonic_UT, keepsmall_test6) {
|
||||
size_t ts_depth = 3;
|
||||
mpi_id_t ts_partner[] = {2, 3, 0, 1, 6, 7, 4, 5};
|
||||
bool ts_expected[] = {1, 1, 0, 0, 1, 1, 0, 0};
|
||||
mpi_id_t ts_partner[] = {2, 3, 0, 1, 6, 7, 4, 5};
|
||||
bool ts_expected[] = {1, 1, 0, 0, 1, 1, 0, 0};
|
||||
|
||||
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||
@@ -320,27 +320,28 @@ TEST(TdistBitonic_UT, keepsmall_test6) {
|
||||
*/
|
||||
TEST(TdistBitonic_UT, keepsmall_test7) {
|
||||
size_t ts_depth = 3;
|
||||
mpi_id_t ts_partner[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||
bool ts_expected[] = {1, 0, 1, 0, 1, 0, 1, 0};
|
||||
mpi_id_t ts_partner[] = {1, 0, 3, 2, 5, 4, 7, 6};
|
||||
bool ts_expected[] = {1, 0, 1, 0, 1, 0, 1, 0};
|
||||
|
||||
for (mpi_id_t node = 0 ; node < 8 ; ++node ) {
|
||||
EXPECT_EQ(ts_expected[node], keepSmall<SortMode::Bitonic>(node, ts_partner[node], ts_depth));
|
||||
}
|
||||
}
|
||||
|
||||
#if 0
|
||||
TEST(TdistBitonic_UT, distBitonic_test1) {
|
||||
AllData_t ts_Data {
|
||||
Data_t (8), Data_t (8)
|
||||
ShadowedVec_t (8), ShadowedVec_t (8)
|
||||
};
|
||||
|
||||
std::srand(unsigned(std::time(nullptr)));
|
||||
for (auto& v : ts_Data) {
|
||||
(unsigned(std::time(nullptr)));
|
||||
for (auto
|
||||
std::srand& v : ts_Data) {
|
||||
std::generate(v.begin(), v.end(), std::rand);
|
||||
}
|
||||
|
||||
distBitonic(2, ts_Data);
|
||||
|
||||
auto max = std::numeric_limits<Data_t::value_type>::min();
|
||||
auto max = std::numeric_limits<ShadowedVec_t::value_type>::min();
|
||||
for (auto& v : ts_Data) {
|
||||
EXPECT_EQ((max <= v[0]), true);
|
||||
EXPECT_EQ(std::is_sorted(v.begin(), v.end()), true);
|
||||
@@ -350,7 +351,7 @@ TEST(TdistBitonic_UT, distBitonic_test1) {
|
||||
|
||||
TEST(TdistBitonic_UT, distBitonic_test2) {
|
||||
AllData_t ts_Data {
|
||||
Data_t (8), Data_t (8), Data_t (8), Data_t (8)
|
||||
ShadowedVec_t (8), ShadowedVec_t (8), ShadowedVec_t (8), ShadowedVec_t (8)
|
||||
};
|
||||
|
||||
std::srand(unsigned(std::time(nullptr)));
|
||||
@@ -360,7 +361,7 @@ TEST(TdistBitonic_UT, distBitonic_test2) {
|
||||
|
||||
distBitonic(4, ts_Data);
|
||||
|
||||
auto max = std::numeric_limits<Data_t::value_type>::min();
|
||||
auto max = std::numeric_limits<ShadowedVec_t::value_type>::min();
|
||||
for (auto& v : ts_Data) {
|
||||
EXPECT_EQ((max <= v[0]), true);
|
||||
EXPECT_EQ(std::is_sorted(v.begin(), v.end()), true);
|
||||
@@ -370,8 +371,8 @@ TEST(TdistBitonic_UT, distBitonic_test2) {
|
||||
|
||||
TEST(TdistBitonic_UT, distBitonic_test3) {
|
||||
AllData_t ts_Data {
|
||||
Data_t (32), Data_t (32), Data_t (32), Data_t (32),
|
||||
Data_t (32), Data_t (32), Data_t (32), Data_t (32)
|
||||
ShadowedVec_t (32), ShadowedVec_t (32), ShadowedVec_t (32), ShadowedVec_t (32),
|
||||
ShadowedVec_t (32), ShadowedVec_t (32), ShadowedVec_t (32), ShadowedVec_t (32)
|
||||
};
|
||||
|
||||
std::srand(unsigned(std::time(nullptr)));
|
||||
@@ -381,10 +382,12 @@ TEST(TdistBitonic_UT, distBitonic_test3) {
|
||||
|
||||
distBitonic(8, ts_Data);
|
||||
|
||||
auto max = std::numeric_limits<Data_t::value_type>::min();
|
||||
auto max = std::numeric_limits<ShadowedVec_t::value_type>::min();
|
||||
for (auto& v : ts_Data) {
|
||||
EXPECT_EQ((max <= v[0]), true);
|
||||
EXPECT_EQ(std::is_sorted(v.begin(), v.end()), true);
|
||||
max = v.back();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
#include <algorithm> // rand/srand
|
||||
#include <ctime> // rand/srand
|
||||
#include "distbitonic.hpp"
|
||||
#include "distsort.hpp"
|
||||
|
||||
|
||||
|
||||
@@ -120,10 +120,10 @@ TEST(TdistBubbletonic_UT, keepsmall_test2) {
|
||||
}
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
TEST(TdistBubbletonic_UT, distBubbletonic_test1) {
|
||||
AllData_t ts_Data {
|
||||
Data_t (8), Data_t (8)
|
||||
ShadowedVec_t (8), ShadowedVec_t (8)
|
||||
};
|
||||
|
||||
std::srand(unsigned(std::time(nullptr)));
|
||||
@@ -133,7 +133,7 @@ TEST(TdistBubbletonic_UT, distBubbletonic_test1) {
|
||||
|
||||
distBubbletonic(2, ts_Data);
|
||||
|
||||
auto max = std::numeric_limits<Data_t::value_type>::min();
|
||||
auto max = std::numeric_limits<ShadowedVec_t::value_type>::min();
|
||||
for (auto& v : ts_Data) {
|
||||
EXPECT_EQ((max <= v[0]), true);
|
||||
EXPECT_EQ(std::is_sorted(v.begin(), v.end()), true);
|
||||
@@ -144,7 +144,7 @@ TEST(TdistBubbletonic_UT, distBubbletonic_test1) {
|
||||
|
||||
TEST(TdistBubbletonic_UT, distBubbletonic_test2) {
|
||||
AllData_t ts_Data {
|
||||
Data_t (8), Data_t (8), Data_t (8), Data_t (8)
|
||||
ShadowedVec_t (8), ShadowedVec_t (8), ShadowedVec_t (8), ShadowedVec_t (8)
|
||||
};
|
||||
|
||||
std::srand(unsigned(std::time(nullptr)));
|
||||
@@ -154,7 +154,7 @@ TEST(TdistBubbletonic_UT, distBubbletonic_test2) {
|
||||
|
||||
distBubbletonic(4, ts_Data);
|
||||
|
||||
auto max = std::numeric_limits<Data_t::value_type>::min();
|
||||
auto max = std::numeric_limits<ShadowedVec_t::value_type>::min();
|
||||
for (auto& v : ts_Data) {
|
||||
EXPECT_EQ((max <= v[0]), true);
|
||||
EXPECT_EQ(std::is_sorted(v.begin(), v.end()), true);
|
||||
@@ -164,8 +164,8 @@ TEST(TdistBubbletonic_UT, distBubbletonic_test2) {
|
||||
|
||||
TEST(TdistBubbletonic_UT, distBubbletonic_test3) {
|
||||
AllData_t ts_Data {
|
||||
Data_t (32), Data_t (32), Data_t (32), Data_t (32),
|
||||
Data_t (32), Data_t (32), Data_t (32), Data_t (32)
|
||||
ShadowedVec_t (32), ShadowedVec_t (32), ShadowedVec_t (32), ShadowedVec_t (32),
|
||||
ShadowedVec_t (32), ShadowedVec_t (32), ShadowedVec_t (32), ShadowedVec_t (32)
|
||||
};
|
||||
|
||||
std::srand(unsigned(std::time(nullptr)));
|
||||
@@ -175,10 +175,11 @@ TEST(TdistBubbletonic_UT, distBubbletonic_test3) {
|
||||
|
||||
distBubbletonic(8, ts_Data);
|
||||
|
||||
auto max = std::numeric_limits<Data_t::value_type>::min();
|
||||
auto max = std::numeric_limits<ShadowedVec_t::value_type>::min();
|
||||
for (auto& v : ts_Data) {
|
||||
EXPECT_EQ((max <= v[0]), true);
|
||||
EXPECT_EQ(std::is_sorted(v.begin(), v.end()), true);
|
||||
max = v.back();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user