026c796e06
Reviewers: msantl Reviewed By: msantl Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D1944
72 lines
1.6 KiB
C++
72 lines
1.6 KiB
C++
#include <glog/logging.h>
|
|
#include <gmock/gmock.h>
|
|
#include <gtest/gtest.h>
|
|
|
|
#include "database/single_node/graph_db.hpp"
|
|
#include "database/single_node/graph_db_accessor.hpp"
|
|
|
|
class StatTest : public ::testing::Test {
|
|
public:
|
|
database::GraphDb db_;
|
|
};
|
|
|
|
#define COMPARE(stat, vc, ec, ad) \
|
|
EXPECT_EQ(stat.vertex_count, vc); \
|
|
EXPECT_EQ(stat.edge_count, ec); \
|
|
EXPECT_EQ(stat.avg_degree, ad);
|
|
|
|
TEST_F(StatTest, CountTest1) {
|
|
auto &stat = db_.GetStat();
|
|
COMPARE(stat, 0, 0, 0);
|
|
|
|
auto dba = db_.Access();
|
|
dba.InsertVertex();
|
|
dba.InsertVertex();
|
|
dba.InsertVertex();
|
|
|
|
COMPARE(stat, 0, 0, 0);
|
|
db_.RefreshStat();
|
|
COMPARE(stat, 3, 0, 0);
|
|
}
|
|
|
|
TEST_F(StatTest, CountTest2) {
|
|
auto &stat = db_.GetStat();
|
|
COMPARE(stat, 0, 0, 0);
|
|
|
|
auto dba = db_.Access();
|
|
auto type = dba.EdgeType("edge");
|
|
auto v1 = dba.InsertVertex();
|
|
auto v2 = dba.InsertVertex();
|
|
auto v3 = dba.InsertVertex();
|
|
auto v4 = dba.InsertVertex();
|
|
dba.InsertEdge(v1, v2, type);
|
|
dba.InsertEdge(v2, v2, type);
|
|
dba.InsertEdge(v3, v2, type);
|
|
dba.InsertEdge(v4, v2, type);
|
|
dba.InsertEdge(v1, v3, type);
|
|
|
|
COMPARE(stat, 0, 0, 0);
|
|
db_.RefreshStat();
|
|
COMPARE(stat, 4, 5, 2.5);
|
|
|
|
dba.Commit();
|
|
|
|
auto dba1 = db_.Access();
|
|
auto v22 = dba1.FindVertex(v2.gid(), true);
|
|
dba1.DetachRemoveVertex(v22);
|
|
|
|
db_.RefreshStat();
|
|
COMPARE(stat, 4, 5, 2.5);
|
|
|
|
dba1.Commit();
|
|
db_.CollectGarbage();
|
|
db_.RefreshStat();
|
|
COMPARE(stat, 3, 1, 2.0 / 3);
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
::testing::InitGoogleTest(&argc, argv);
|
|
google::InitGoogleLogging(argv[0]);
|
|
return RUN_ALL_TESTS();
|
|
}
|