Electroneum
Loading...
Searching...
No Matches
hashchain.cpp File Reference
#include "gtest/gtest.h"
#include "wallet/wallet2.h"
Include dependency graph for hashchain.cpp:

Go to the source code of this file.

Functions

 TEST (hashchain, empty)
 TEST (hashchain, genesis)
 TEST (hashchain, push_back)
 TEST (hashchain, clear_empty)
 TEST (hashchain, crop)
 TEST (hashchain, trim)

Function Documentation

◆ TEST() [1/6]

TEST ( hashchain ,
clear_empty  )

Definition at line 76 of file hashchain.cpp.

77{
78 tools::hashchain hashchain;
79 ASSERT_TRUE(hashchain.empty());
80 hashchain.push_back(make_hash(1));
81 ASSERT_FALSE(hashchain.empty());
82 hashchain.push_back(make_hash(2));
83 ASSERT_FALSE(hashchain.empty());
84 hashchain.clear();
85 ASSERT_TRUE(hashchain.empty());
86}
void push_back(const crypto::hash &hash)
Definition wallet2.h:184
bool empty() const
Definition wallet2.h:190
#define ASSERT_FALSE(condition)
Definition gtest.h:1868
#define ASSERT_TRUE(condition)
Definition gtest.h:1865
Here is the call graph for this function:

◆ TEST() [2/6]

TEST ( hashchain ,
crop  )

Definition at line 88 of file hashchain.cpp.

89{
90 tools::hashchain hashchain;
91 hashchain.push_back(make_hash(1));
92 hashchain.push_back(make_hash(2));
93 hashchain.push_back(make_hash(3));
94 ASSERT_EQ(hashchain.size(), 3);
95 ASSERT_EQ(hashchain[0], make_hash(1));
96 ASSERT_EQ(hashchain[1], make_hash(2));
97 ASSERT_EQ(hashchain[2], make_hash(3));
98 hashchain.crop(3);
99 ASSERT_EQ(hashchain.size(), 3);
100 hashchain.crop(2);
101 ASSERT_EQ(hashchain.size(), 2);
102 ASSERT_EQ(hashchain[0], make_hash(1));
103 ASSERT_EQ(hashchain[1], make_hash(2));
104 ASSERT_EQ(hashchain.genesis(), make_hash(1));
105 hashchain.crop(0);
106 ASSERT_TRUE(hashchain.empty());
107 ASSERT_EQ(hashchain.size(), 0);
108 hashchain.push_back(make_hash(5));
109 ASSERT_EQ(hashchain.genesis(), make_hash(5));
110 ASSERT_EQ(hashchain.size(), 1);
111}
void crop(size_t height)
Definition wallet2.h:188
size_t size() const
Definition wallet2.h:181
const crypto::hash & genesis() const
Definition wallet2.h:183
#define ASSERT_EQ(val1, val2)
Definition gtest.h:1956
Here is the call graph for this function:

◆ TEST() [3/6]

TEST ( hashchain ,
empty  )

Definition at line 47 of file hashchain.cpp.

48{
49 tools::hashchain hashchain;
50 ASSERT_EQ(hashchain.size(), 0);
51 ASSERT_EQ(hashchain.offset(), 0);
52}
size_t offset() const
Definition wallet2.h:182
Here is the call graph for this function:

◆ TEST() [4/6]

TEST ( hashchain ,
genesis  )

Definition at line 54 of file hashchain.cpp.

55{
56 tools::hashchain hashchain;
57 hashchain.push_back(make_hash(1));
58 ASSERT_EQ(hashchain.size(), 1);
59 ASSERT_EQ(hashchain.genesis(), make_hash(1));
60 hashchain.push_back(make_hash(2));
61 ASSERT_EQ(hashchain.size(), 2);
62 ASSERT_EQ(hashchain.genesis(), make_hash(1));
63}
Here is the call graph for this function:

◆ TEST() [5/6]

TEST ( hashchain ,
push_back  )

Definition at line 65 of file hashchain.cpp.

66{
67 tools::hashchain hashchain;
68 hashchain.push_back(make_hash(1));
69 hashchain.push_back(make_hash(2));
70 hashchain.push_back(make_hash(3));
71 ASSERT_EQ(hashchain[0], make_hash(1));
72 ASSERT_EQ(hashchain[1], make_hash(2));
73 ASSERT_EQ(hashchain[2], make_hash(3));
74}
Here is the call graph for this function:

◆ TEST() [6/6]

TEST ( hashchain ,
trim  )

Definition at line 113 of file hashchain.cpp.

114{
115 tools::hashchain hashchain;
116 hashchain.push_back(make_hash(1));
117 hashchain.push_back(make_hash(2));
118 hashchain.push_back(make_hash(3));
119 ASSERT_EQ(hashchain.offset(), 0);
120 hashchain.trim(2);
121 ASSERT_EQ(hashchain.offset(), 2);
122 ASSERT_EQ(hashchain.size(), 3);
123 ASSERT_EQ(hashchain[2], make_hash(3));
124 hashchain.trim(3);
125 ASSERT_EQ(hashchain.offset(), 2); // never gets it empty
126 ASSERT_EQ(hashchain.size(), 3);
127 ASSERT_FALSE(hashchain.empty());
128 ASSERT_EQ(hashchain.genesis(), make_hash(1));
129}
void trim(size_t height)
Definition wallet2.h:191
Here is the call graph for this function: