Electroneum
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  ,
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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
size_t size() const
Definition: wallet2.h:181
size_t offset() const
Definition: wallet2.h:182
Here is the call graph for this function:

◆ TEST() [2/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
const crypto::hash & genesis() const
Definition: wallet2.h:183
size_t size() const
Definition: wallet2.h:181
void push_back(const crypto::hash &hash)
Definition: wallet2.h:184
Here is the call graph for this function:

◆ TEST() [3/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
void push_back(const crypto::hash &hash)
Definition: wallet2.h:184
Here is the call graph for this function:

◆ TEST() [4/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 }
#define ASSERT_FALSE(condition)
Definition: gtest.h:1868
bool empty() const
Definition: wallet2.h:190
void clear()
Definition: wallet2.h:189
#define ASSERT_TRUE(condition)
Definition: gtest.h:1865
void push_back(const crypto::hash &hash)
Definition: wallet2.h:184
Here is the call graph for this function:

◆ TEST() [5/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 }
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
const crypto::hash & genesis() const
Definition: wallet2.h:183
bool empty() const
Definition: wallet2.h:190
size_t size() const
Definition: wallet2.h:181
#define ASSERT_TRUE(condition)
Definition: gtest.h:1865
void crop(size_t height)
Definition: wallet2.h:188
void push_back(const crypto::hash &hash)
Definition: wallet2.h:184
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
#define ASSERT_FALSE(condition)
Definition: gtest.h:1868
#define ASSERT_EQ(val1, val2)
Definition: gtest.h:1956
const crypto::hash & genesis() const
Definition: wallet2.h:183
bool empty() const
Definition: wallet2.h:190
size_t size() const
Definition: wallet2.h:181
size_t offset() const
Definition: wallet2.h:182
void push_back(const crypto::hash &hash)
Definition: wallet2.h:184
Here is the call graph for this function: