From 10cc831ed20d0a0cfa517fe72b5c34b0dc156226 Mon Sep 17 00:00:00 2001 From: Matej Ferencevic <matej.ferencevic@memgraph.io> Date: Tue, 3 Dec 2019 20:26:32 +0100 Subject: [PATCH] Implement all edge filters for storage v2 Summary: Edge filters (edge type and destination vertex) are now handled natively in the storage API. The API is implemented to be the fastest possible when using the filters with the assumption that the number of edge types will be small. Reviewers: teon.banek Reviewed By: teon.banek Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D2576 --- src/query/db_accessor.hpp | 42 +- src/storage/v2/durability.cpp | 4 +- src/storage/v2/vertex_accessor.cpp | 86 +- src/storage/v2/vertex_accessor.hpp | 7 +- tests/unit/query_dump.cpp | 2 +- tests/unit/storage_v2.cpp | 16 +- tests/unit/storage_v2_durability.cpp | 24 +- tests/unit/storage_v2_edge.cpp | 1808 ++++++++++++++++---------- tests/unit/storage_v2_gc.cpp | 4 +- 9 files changed, 1261 insertions(+), 732 deletions(-) diff --git a/src/query/db_accessor.hpp b/src/query/db_accessor.hpp index f05f703ee..72e8c886f 100644 --- a/src/query/db_accessor.hpp +++ b/src/query/db_accessor.hpp @@ -123,9 +123,9 @@ class VertexAccessor final { auto InEdges(storage::View view, const std::vector<storage::EdgeType> &edge_types) const - -> storage::Result<decltype( - iter::imap(MakeEdgeAccessor, *impl_.InEdges(edge_types, view)))> { - auto maybe_edges = impl_.InEdges(edge_types, view); + -> storage::Result<decltype(iter::imap(MakeEdgeAccessor, + *impl_.InEdges(view)))> { + auto maybe_edges = impl_.InEdges(view, edge_types); if (maybe_edges.HasError()) return maybe_edges.GetError(); return iter::imap(MakeEdgeAccessor, std::move(*maybe_edges)); } @@ -135,25 +135,18 @@ class VertexAccessor final { auto InEdges(storage::View view, const std::vector<storage::EdgeType> &edge_types, const VertexAccessor &dest) const - -> storage::Result<decltype( - iter::imap(MakeEdgeAccessor, *impl_.InEdges(edge_types, view)))> { - auto maybe_edges = impl_.InEdges(edge_types, view); + -> storage::Result<decltype(iter::imap(MakeEdgeAccessor, + *impl_.InEdges(view)))> { + auto maybe_edges = impl_.InEdges(view, edge_types, &dest.impl_); if (maybe_edges.HasError()) return maybe_edges.GetError(); - std::vector<storage::EdgeAccessor> reduced_edges; - reduced_edges.reserve(maybe_edges->size()); - for (auto &edge : *maybe_edges) { - if (edge.FromVertex() == dest.impl_) { - reduced_edges.push_back(edge); - } - } - return iter::imap(MakeEdgeAccessor, std::move(reduced_edges)); + return iter::imap(MakeEdgeAccessor, std::move(*maybe_edges)); } auto OutEdges(storage::View view, const std::vector<storage::EdgeType> &edge_types) const - -> storage::Result<decltype( - iter::imap(MakeEdgeAccessor, *impl_.OutEdges(edge_types, view)))> { - auto maybe_edges = impl_.OutEdges(edge_types, view); + -> storage::Result<decltype(iter::imap(MakeEdgeAccessor, + *impl_.OutEdges(view)))> { + auto maybe_edges = impl_.OutEdges(view, edge_types); if (maybe_edges.HasError()) return maybe_edges.GetError(); return iter::imap(MakeEdgeAccessor, std::move(*maybe_edges)); } @@ -163,18 +156,11 @@ class VertexAccessor final { auto OutEdges(storage::View view, const std::vector<storage::EdgeType> &edge_types, const VertexAccessor &dest) const - -> storage::Result<decltype( - iter::imap(MakeEdgeAccessor, *impl_.OutEdges(edge_types, view)))> { - auto maybe_edges = impl_.OutEdges(edge_types, view); + -> storage::Result<decltype(iter::imap(MakeEdgeAccessor, + *impl_.OutEdges(view)))> { + auto maybe_edges = impl_.OutEdges(view, edge_types, &dest.impl_); if (maybe_edges.HasError()) return maybe_edges.GetError(); - std::vector<storage::EdgeAccessor> reduced_edges; - reduced_edges.reserve(maybe_edges->size()); - for (auto &edge : *maybe_edges) { - if (edge.ToVertex() == dest.impl_) { - reduced_edges.push_back(edge); - } - } - return iter::imap(MakeEdgeAccessor, std::move(reduced_edges)); + return iter::imap(MakeEdgeAccessor, std::move(*maybe_edges)); } storage::Result<size_t> InDegree(storage::View view) const { diff --git a/src/storage/v2/durability.cpp b/src/storage/v2/durability.cpp index 119431a69..adfe8955a 100644 --- a/src/storage/v2/durability.cpp +++ b/src/storage/v2/durability.cpp @@ -1660,9 +1660,9 @@ void Durability::CreateSnapshot(Transaction *transaction) { CHECK(maybe_labels.HasValue()) << "Invalid database state!"; auto maybe_props = va->Properties(View::OLD); CHECK(maybe_props.HasValue()) << "Invalid database state!"; - auto maybe_in_edges = va->InEdges({}, View::OLD); + auto maybe_in_edges = va->InEdges(View::OLD); CHECK(maybe_in_edges.HasValue()) << "Invalid database state!"; - auto maybe_out_edges = va->OutEdges({}, View::OLD); + auto maybe_out_edges = va->OutEdges(View::OLD); CHECK(maybe_out_edges.HasValue()) << "Invalid database state!"; // Store the vertex. diff --git a/src/storage/v2/vertex_accessor.cpp b/src/storage/v2/vertex_accessor.cpp index 29c5d17ab..2a0e2dd52 100644 --- a/src/storage/v2/vertex_accessor.cpp +++ b/src/storage/v2/vertex_accessor.cpp @@ -348,7 +348,10 @@ Result<std::map<PropertyId, PropertyValue>> VertexAccessor::Properties( } Result<std::vector<EdgeAccessor>> VertexAccessor::InEdges( - const std::vector<EdgeTypeId> &edge_types, View view) const { + View view, const std::vector<EdgeTypeId> &edge_types, + const VertexAccessor *destination) const { + CHECK(!destination || destination->transaction_ == transaction_) + << "Invalid accessor!"; bool exists = true; bool deleted = false; std::vector<std::tuple<EdgeTypeId, Vertex *, EdgeRef>> in_edges; @@ -356,14 +359,33 @@ Result<std::vector<EdgeAccessor>> VertexAccessor::InEdges( { std::lock_guard<utils::SpinLock> guard(vertex_->lock); deleted = vertex_->deleted; - in_edges = vertex_->in_edges; + if (edge_types.empty() && !destination) { + in_edges = vertex_->in_edges; + } else { + for (const auto &item : vertex_->in_edges) { + const auto &[edge_type, from_vertex, edge] = item; + if (destination && from_vertex != destination->vertex_) continue; + if (!edge_types.empty() && + std::find(edge_types.begin(), edge_types.end(), edge_type) == + edge_types.end()) + continue; + in_edges.push_back(item); + } + } delta = vertex_->delta; } ApplyDeltasForRead( transaction_, delta, view, - [&exists, &deleted, &in_edges](const Delta &delta) { + [&exists, &deleted, &in_edges, &edge_types, + &destination](const Delta &delta) { switch (delta.action) { case Delta::Action::ADD_IN_EDGE: { + if (destination && delta.vertex_edge.vertex != destination->vertex_) + break; + if (!edge_types.empty() && + std::find(edge_types.begin(), edge_types.end(), + delta.vertex_edge.edge_type) == edge_types.end()) + break; // Add the edge because we don't see the removal. std::tuple<EdgeTypeId, Vertex *, EdgeRef> link{ delta.vertex_edge.edge_type, delta.vertex_edge.vertex, @@ -374,6 +396,12 @@ Result<std::vector<EdgeAccessor>> VertexAccessor::InEdges( break; } case Delta::Action::REMOVE_IN_EDGE: { + if (destination && delta.vertex_edge.vertex != destination->vertex_) + break; + if (!edge_types.empty() && + std::find(edge_types.begin(), edge_types.end(), + delta.vertex_edge.edge_type) == edge_types.end()) + break; // Remove the label because we don't see the addition. std::tuple<EdgeTypeId, Vertex *, EdgeRef> link{ delta.vertex_edge.edge_type, delta.vertex_edge.vertex, @@ -405,18 +433,18 @@ Result<std::vector<EdgeAccessor>> VertexAccessor::InEdges( std::vector<EdgeAccessor> ret; ret.reserve(in_edges.size()); for (const auto &item : in_edges) { - auto [edge_type, from_vertex, edge] = item; - if (edge_types.empty() || std::find(edge_types.begin(), edge_types.end(), - edge_type) != edge_types.end()) { - ret.emplace_back(edge, edge_type, from_vertex, vertex_, transaction_, - indices_, config_); - } + const auto &[edge_type, from_vertex, edge] = item; + ret.emplace_back(edge, edge_type, from_vertex, vertex_, transaction_, + indices_, config_); } return std::move(ret); } Result<std::vector<EdgeAccessor>> VertexAccessor::OutEdges( - const std::vector<EdgeTypeId> &edge_types, View view) const { + View view, const std::vector<EdgeTypeId> &edge_types, + const VertexAccessor *destination) const { + CHECK(!destination || destination->transaction_ == transaction_) + << "Invalid accessor!"; bool exists = true; bool deleted = false; std::vector<std::tuple<EdgeTypeId, Vertex *, EdgeRef>> out_edges; @@ -424,14 +452,33 @@ Result<std::vector<EdgeAccessor>> VertexAccessor::OutEdges( { std::lock_guard<utils::SpinLock> guard(vertex_->lock); deleted = vertex_->deleted; - out_edges = vertex_->out_edges; + if (edge_types.empty() && !destination) { + out_edges = vertex_->out_edges; + } else { + for (const auto &item : vertex_->out_edges) { + const auto &[edge_type, to_vertex, edge] = item; + if (destination && to_vertex != destination->vertex_) continue; + if (!edge_types.empty() && + std::find(edge_types.begin(), edge_types.end(), edge_type) == + edge_types.end()) + continue; + out_edges.push_back(item); + } + } delta = vertex_->delta; } ApplyDeltasForRead( transaction_, delta, view, - [&exists, &deleted, &out_edges](const Delta &delta) { + [&exists, &deleted, &out_edges, &edge_types, + &destination](const Delta &delta) { switch (delta.action) { case Delta::Action::ADD_OUT_EDGE: { + if (destination && delta.vertex_edge.vertex != destination->vertex_) + break; + if (!edge_types.empty() && + std::find(edge_types.begin(), edge_types.end(), + delta.vertex_edge.edge_type) == edge_types.end()) + break; // Add the edge because we don't see the removal. std::tuple<EdgeTypeId, Vertex *, EdgeRef> link{ delta.vertex_edge.edge_type, delta.vertex_edge.vertex, @@ -442,6 +489,12 @@ Result<std::vector<EdgeAccessor>> VertexAccessor::OutEdges( break; } case Delta::Action::REMOVE_OUT_EDGE: { + if (destination && delta.vertex_edge.vertex != destination->vertex_) + break; + if (!edge_types.empty() && + std::find(edge_types.begin(), edge_types.end(), + delta.vertex_edge.edge_type) == edge_types.end()) + break; // Remove the label because we don't see the addition. std::tuple<EdgeTypeId, Vertex *, EdgeRef> link{ delta.vertex_edge.edge_type, delta.vertex_edge.vertex, @@ -473,12 +526,9 @@ Result<std::vector<EdgeAccessor>> VertexAccessor::OutEdges( std::vector<EdgeAccessor> ret; ret.reserve(out_edges.size()); for (const auto &item : out_edges) { - auto [edge_type, to_vertex, edge] = item; - if (edge_types.empty() || std::find(edge_types.begin(), edge_types.end(), - edge_type) != edge_types.end()) { - ret.emplace_back(edge, edge_type, vertex_, to_vertex, transaction_, - indices_, config_); - } + const auto &[edge_type, to_vertex, edge] = item; + ret.emplace_back(edge, edge_type, vertex_, to_vertex, transaction_, + indices_, config_); } return std::move(ret); } diff --git a/src/storage/v2/vertex_accessor.hpp b/src/storage/v2/vertex_accessor.hpp index 7cce4a411..fae7419ad 100644 --- a/src/storage/v2/vertex_accessor.hpp +++ b/src/storage/v2/vertex_accessor.hpp @@ -65,18 +65,19 @@ class VertexAccessor final { /// @throw std::bad_alloc Result<std::map<PropertyId, PropertyValue>> Properties(View view) const; - // TODO: Add API for obtaining edges filtered by destination VertexAccessor /// @throw std::bad_alloc /// @throw std::length_error if the resulting vector exceeds /// std::vector::max_size(). Result<std::vector<EdgeAccessor>> InEdges( - const std::vector<EdgeTypeId> &edge_types, View view) const; + View view, const std::vector<EdgeTypeId> &edge_types = {}, + const VertexAccessor *destination = nullptr) const; /// @throw std::bad_alloc /// @throw std::length_error if the resulting vector exceeds /// std::vector::max_size(). Result<std::vector<EdgeAccessor>> OutEdges( - const std::vector<EdgeTypeId> &edge_types, View view) const; + View view, const std::vector<EdgeTypeId> &edge_types = {}, + const VertexAccessor *destination = nullptr) const; Result<size_t> InDegree(View view) const; diff --git a/tests/unit/query_dump.cpp b/tests/unit/query_dump.cpp index 45650a936..4f60a5e32 100644 --- a/tests/unit/query_dump.cpp +++ b/tests/unit/query_dump.cpp @@ -135,7 +135,7 @@ DatabaseState GetState(storage::Storage *db) { // Capture all edges std::set<DatabaseState::Edge> edges; for (const auto &vertex : dba.Vertices(storage::View::NEW)) { - auto maybe_edges = vertex.OutEdges({}, storage::View::NEW); + auto maybe_edges = vertex.OutEdges(storage::View::NEW); CHECK(maybe_edges.HasValue()); for (const auto &edge : *maybe_edges) { const auto &edge_type_name = dba.EdgeTypeToName(edge.EdgeType()); diff --git a/tests/unit/storage_v2.cpp b/tests/unit/storage_v2.cpp index 9b313da21..6f7635507 100644 --- a/tests/unit/storage_v2.cpp +++ b/tests/unit/storage_v2.cpp @@ -2275,9 +2275,9 @@ TEST(StorageV2, VertexNonexistentLabelPropertyEdgeAPI) { storage::Error::NONEXISTENT_OBJECT); ASSERT_EQ(vertex.GetProperty(property, storage::View::OLD).GetError(), storage::Error::NONEXISTENT_OBJECT); - ASSERT_EQ(vertex.InEdges({}, storage::View::OLD).GetError(), + ASSERT_EQ(vertex.InEdges(storage::View::OLD).GetError(), storage::Error::NONEXISTENT_OBJECT); - ASSERT_EQ(vertex.OutEdges({}, storage::View::OLD).GetError(), + ASSERT_EQ(vertex.OutEdges(storage::View::OLD).GetError(), storage::Error::NONEXISTENT_OBJECT); ASSERT_EQ(vertex.InDegree(storage::View::OLD).GetError(), storage::Error::NONEXISTENT_OBJECT); @@ -2290,8 +2290,8 @@ TEST(StorageV2, VertexNonexistentLabelPropertyEdgeAPI) { ASSERT_EQ(vertex.Properties(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex.GetProperty(property, storage::View::NEW), storage::PropertyValue()); - ASSERT_EQ(vertex.InEdges({}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex.OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex.InEdges(storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex.OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex.InDegree(storage::View::NEW), 0); ASSERT_EQ(*vertex.OutDegree(storage::View::NEW), 0); @@ -2311,9 +2311,9 @@ TEST(StorageV2, VertexNonexistentLabelPropertyEdgeAPI) { storage::Error::NONEXISTENT_OBJECT); ASSERT_EQ(vertex.GetProperty(property, storage::View::OLD).GetError(), storage::Error::NONEXISTENT_OBJECT); - ASSERT_EQ(vertex.InEdges({}, storage::View::OLD).GetError(), + ASSERT_EQ(vertex.InEdges(storage::View::OLD).GetError(), storage::Error::NONEXISTENT_OBJECT); - ASSERT_EQ(vertex.OutEdges({}, storage::View::OLD).GetError(), + ASSERT_EQ(vertex.OutEdges(storage::View::OLD).GetError(), storage::Error::NONEXISTENT_OBJECT); ASSERT_EQ(vertex.InDegree(storage::View::OLD).GetError(), storage::Error::NONEXISTENT_OBJECT); @@ -2326,8 +2326,8 @@ TEST(StorageV2, VertexNonexistentLabelPropertyEdgeAPI) { ASSERT_EQ(vertex.Properties(storage::View::NEW)->size(), 1); ASSERT_EQ(*vertex.GetProperty(property, storage::View::NEW), storage::PropertyValue("value")); - ASSERT_EQ(vertex.InEdges({}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex.OutEdges({}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex.InEdges(storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex.OutEdges(storage::View::NEW)->size(), 1); ASSERT_EQ(*vertex.InDegree(storage::View::NEW), 1); ASSERT_EQ(*vertex.OutDegree(storage::View::NEW), 1); diff --git a/tests/unit/storage_v2_durability.cpp b/tests/unit/storage_v2_durability.cpp index 49342859f..5f1f7d546 100644 --- a/tests/unit/storage_v2_durability.cpp +++ b/tests/unit/storage_v2_durability.cpp @@ -326,7 +326,7 @@ class DurabilityTest : public ::testing::TestWithParam<bool> { acc.FindVertex(base_vertex_gids_[(i / 2) % kNumBaseVertices], storage::View::OLD); ASSERT_TRUE(vertex1); - auto out_edges = vertex1->OutEdges({}, storage::View::OLD); + auto out_edges = vertex1->OutEdges(storage::View::OLD); ASSERT_TRUE(out_edges.HasValue()); auto edge1 = find_edge(*out_edges); ASSERT_TRUE(edge1); @@ -351,7 +351,7 @@ class DurabilityTest : public ::testing::TestWithParam<bool> { acc.FindVertex(base_vertex_gids_[(i / 3) % kNumBaseVertices], storage::View::OLD); ASSERT_TRUE(vertex2); - auto in_edges = vertex2->InEdges({}, storage::View::OLD); + auto in_edges = vertex2->InEdges(storage::View::OLD); ASSERT_TRUE(in_edges.HasValue()); auto edge2 = find_edge(*in_edges); ASSERT_TRUE(edge2); @@ -479,7 +479,7 @@ class DurabilityTest : public ::testing::TestWithParam<bool> { extended_vertex_gids_[(i / 5) % kNumExtendedVertices], storage::View::OLD); ASSERT_TRUE(vertex1); - auto out_edges = vertex1->OutEdges({}, storage::View::OLD); + auto out_edges = vertex1->OutEdges(storage::View::OLD); ASSERT_TRUE(out_edges.HasValue()); auto edge1 = find_edge(*out_edges); ASSERT_TRUE(edge1); @@ -498,7 +498,7 @@ class DurabilityTest : public ::testing::TestWithParam<bool> { extended_vertex_gids_[(i / 6) % kNumExtendedVertices], storage::View::OLD); ASSERT_TRUE(vertex2); - auto in_edges = vertex2->InEdges({}, storage::View::OLD); + auto in_edges = vertex2->InEdges(storage::View::OLD); ASSERT_TRUE(in_edges.HasValue()); auto edge2 = find_edge(*in_edges); ASSERT_TRUE(edge2); @@ -1141,7 +1141,7 @@ TEST_F(DurabilityTest, { auto acc = store.Access(); for (auto vertex : acc.Vertices(storage::View::OLD)) { - auto in_edges = vertex.InEdges({}, storage::View::OLD); + auto in_edges = vertex.InEdges(storage::View::OLD); ASSERT_TRUE(in_edges.HasValue()); for (auto edge : *in_edges) { // TODO (mferencevic): Replace with `ClearProperties()` @@ -1152,7 +1152,7 @@ TEST_F(DurabilityTest, .HasValue()); } } - auto out_edges = vertex.InEdges({}, storage::View::OLD); + auto out_edges = vertex.InEdges(storage::View::OLD); ASSERT_TRUE(out_edges.HasValue()); for (auto edge : *out_edges) { // TODO (mferencevic): Replace with `ClearProperties()` @@ -1397,10 +1397,10 @@ TEST_P(DurabilityTest, WalCreateInSingleTransaction) { auto props = v1->Properties(storage::View::OLD); ASSERT_TRUE(props.HasValue()); ASSERT_EQ(props->size(), 0); - auto in_edges = v1->InEdges({}, storage::View::OLD); + auto in_edges = v1->InEdges(storage::View::OLD); ASSERT_TRUE(in_edges.HasValue()); ASSERT_EQ(in_edges->size(), 0); - auto out_edges = v1->OutEdges({}, storage::View::OLD); + auto out_edges = v1->OutEdges(storage::View::OLD); ASSERT_TRUE(out_edges.HasValue()); ASSERT_EQ(out_edges->size(), 1); const auto &edge = (*out_edges)[0]; @@ -1426,7 +1426,7 @@ TEST_P(DurabilityTest, WalCreateInSingleTransaction) { ASSERT_THAT(*props, UnorderedElementsAre( std::make_pair(store.NameToProperty("hello"), storage::PropertyValue("world")))); - auto in_edges = v2->InEdges({}, storage::View::OLD); + auto in_edges = v2->InEdges(storage::View::OLD); ASSERT_TRUE(in_edges.HasValue()); ASSERT_EQ(in_edges->size(), 1); const auto &edge = (*in_edges)[0]; @@ -1440,7 +1440,7 @@ TEST_P(DurabilityTest, WalCreateInSingleTransaction) { } else { ASSERT_EQ(edge_props->size(), 0); } - auto out_edges = v2->OutEdges({}, storage::View::OLD); + auto out_edges = v2->OutEdges(storage::View::OLD); ASSERT_TRUE(out_edges.HasValue()); ASSERT_EQ(out_edges->size(), 0); } @@ -1455,10 +1455,10 @@ TEST_P(DurabilityTest, WalCreateInSingleTransaction) { ASSERT_THAT(*props, UnorderedElementsAre(std::make_pair( store.NameToProperty("v3"), storage::PropertyValue(42)))); - auto in_edges = v3->InEdges({}, storage::View::OLD); + auto in_edges = v3->InEdges(storage::View::OLD); ASSERT_TRUE(in_edges.HasValue()); ASSERT_EQ(in_edges->size(), 0); - auto out_edges = v3->OutEdges({}, storage::View::OLD); + auto out_edges = v3->OutEdges(storage::View::OLD); ASSERT_TRUE(out_edges.HasValue()); ASSERT_EQ(out_edges->size(), 0); } diff --git a/tests/unit/storage_v2_edge.cpp b/tests/unit/storage_v2_edge.cpp index a308d498b..c7f9255ea 100644 --- a/tests/unit/storage_v2_edge.cpp +++ b/tests/unit/storage_v2_edge.cpp @@ -50,14 +50,14 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerCommit) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -67,10 +67,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -80,20 +80,51 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et}, &*vertex_to) + ->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {et, other_et}, &*vertex_to) + ->size(), + 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {et, other_et}, &*vertex_from) + ->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et}, &*vertex_from) + ->size(), + 0); + ASSERT_EQ( + vertex_to->InEdges(storage::View::NEW, {et, other_et}, &*vertex_from) + ->size(), + 1); + ASSERT_EQ( + vertex_to->InEdges(storage::View::NEW, {et, other_et}, &*vertex_to) + ->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -109,12 +140,12 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerCommit) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -125,7 +156,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -136,7 +167,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -147,7 +178,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -157,26 +188,88 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et}, &*vertex_to) + ->size(), + 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et}, &*vertex_to) + ->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {et, other_et}, &*vertex_to) + ->size(), + 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {et, other_et}, &*vertex_to) + ->size(), + 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {et, other_et}, &*vertex_from) + ->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {et, other_et}, &*vertex_from) + ->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et}, &*vertex_from) + ->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et}, &*vertex_from) + ->size(), + 0); + ASSERT_EQ( + vertex_to->InEdges(storage::View::OLD, {et, other_et}, &*vertex_from) + ->size(), + 1); + ASSERT_EQ( + vertex_to->InEdges(storage::View::NEW, {et, other_et}, &*vertex_from) + ->size(), + 1); + ASSERT_EQ( + vertex_to->InEdges(storage::View::OLD, {et, other_et}, &*vertex_to) + ->size(), + 0); + ASSERT_EQ( + vertex_to->InEdges(storage::View::NEW, {et, other_et}, &*vertex_to) + ->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -218,14 +311,14 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerCommit) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -235,10 +328,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -248,20 +341,29 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -277,12 +379,12 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerCommit) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -293,7 +395,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -304,7 +406,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -315,7 +417,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -325,26 +427,44 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -380,10 +500,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameCommit) { ASSERT_EQ(edge.ToVertex(), *vertex); // Check edges without filters - ASSERT_EQ(vertex->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::OLD), 0); { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -393,10 +513,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameCommit) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::OLD), 0); { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -410,10 +530,16 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameCommit) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -428,7 +554,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameCommit) { // Check edges without filters { - auto ret = vertex->InEdges({}, storage::View::OLD); + auto ret = vertex->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -439,7 +565,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameCommit) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -450,7 +576,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameCommit) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::OLD); + auto ret = vertex->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -461,7 +587,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameCommit) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -475,14 +601,20 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameCommit) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -524,14 +656,14 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -541,10 +673,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -554,20 +686,29 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); acc.Abort(); } @@ -581,21 +722,21 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_TRUE(vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -619,14 +760,14 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -636,10 +777,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -649,20 +790,29 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -678,12 +828,12 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -694,7 +844,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -705,7 +855,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -716,7 +866,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -726,26 +876,44 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -787,14 +955,14 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -804,10 +972,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -817,20 +985,29 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); acc.Abort(); } @@ -844,21 +1021,21 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_TRUE(vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -882,14 +1059,14 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -899,10 +1076,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -912,20 +1089,29 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -941,12 +1127,12 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -957,7 +1143,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -968,7 +1154,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -979,7 +1165,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -989,26 +1175,44 @@ TEST_P(StorageEdgeTest, EdgeCreateFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1044,10 +1248,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { ASSERT_EQ(edge.ToVertex(), *vertex); // Check edges without filters - ASSERT_EQ(vertex->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::OLD), 0); { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1057,10 +1261,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::OLD), 0); { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1074,10 +1278,16 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); acc.Abort(); } @@ -1089,13 +1299,13 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { ASSERT_TRUE(vertex); // Check edges without filters - ASSERT_EQ(vertex->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -1117,10 +1327,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { ASSERT_EQ(edge.ToVertex(), *vertex); // Check edges without filters - ASSERT_EQ(vertex->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::OLD), 0); { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1130,10 +1340,10 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::OLD), 0); { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1147,10 +1357,16 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1165,7 +1381,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { // Check edges without filters { - auto ret = vertex->InEdges({}, storage::View::OLD); + auto ret = vertex->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1176,7 +1392,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1187,7 +1403,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::OLD); + auto ret = vertex->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1198,7 +1414,7 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1212,14 +1428,26 @@ TEST_P(StorageEdgeTest, EdgeCreateFromSameAbort) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::OLD, {other_et}, &*vertex)->size(), 0); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1261,14 +1489,14 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1278,10 +1506,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1291,20 +1519,29 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1320,12 +1557,12 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1336,7 +1573,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1347,7 +1584,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1358,7 +1595,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1368,26 +1605,44 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1402,19 +1657,19 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { auto et = acc.NameToEdgeType("et5"); - auto edge = vertex_from->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex_from->OutEdges(storage::View::NEW).GetValue()[0]; auto res = acc.DeleteEdge(&edge); ASSERT_TRUE(res.HasValue()); ASSERT_TRUE(res.GetValue()); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1424,10 +1679,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1437,22 +1692,31 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1466,21 +1730,21 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerCommit) { ASSERT_TRUE(vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -1523,14 +1787,14 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1540,10 +1804,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1553,20 +1817,29 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1582,12 +1855,12 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1598,7 +1871,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1609,7 +1882,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1620,7 +1893,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1630,26 +1903,44 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1664,19 +1955,19 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { auto et = acc.NameToEdgeType("et5"); - auto edge = vertex_from->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex_from->OutEdges(storage::View::NEW).GetValue()[0]; auto res = acc.DeleteEdge(&edge); ASSERT_TRUE(res.HasValue()); ASSERT_TRUE(res.GetValue()); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1686,10 +1977,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1699,22 +1990,31 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1728,21 +2028,21 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerCommit) { ASSERT_TRUE(vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -1779,10 +2079,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { ASSERT_EQ(edge.ToVertex(), *vertex); // Check edges without filters - ASSERT_EQ(vertex->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::OLD), 0); { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1792,10 +2092,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::OLD), 0); { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1809,10 +2109,16 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1827,7 +2133,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { // Check edges without filters { - auto ret = vertex->InEdges({}, storage::View::OLD); + auto ret = vertex->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1838,7 +2144,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1849,7 +2155,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::OLD); + auto ret = vertex->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1860,7 +2166,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1874,14 +2180,26 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::OLD, {other_et}, &*vertex)->size(), 0); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1894,7 +2212,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { auto et = acc.NameToEdgeType("et5"); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto res = acc.DeleteEdge(&edge); ASSERT_TRUE(res.HasValue()); @@ -1902,7 +2220,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { // Check edges without filters { - auto ret = vertex->InEdges({}, storage::View::OLD); + auto ret = vertex->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1912,10 +2230,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::NEW), 0); { - auto ret = vertex->OutEdges({}, storage::View::OLD); + auto ret = vertex->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -1925,16 +2243,22 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::OLD)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::OLD, {other_et}, &*vertex)->size(), 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -1946,13 +2270,13 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameCommit) { ASSERT_TRUE(vertex); // Check edges without filters - ASSERT_EQ(vertex->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -1995,14 +2319,14 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2012,10 +2336,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2025,20 +2349,29 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2054,12 +2387,12 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2070,7 +2403,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2081,7 +2414,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2092,7 +2425,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2102,26 +2435,44 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2136,19 +2487,19 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { auto et = acc.NameToEdgeType("et5"); - auto edge = vertex_from->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex_from->OutEdges(storage::View::NEW).GetValue()[0]; auto res = acc.DeleteEdge(&edge); ASSERT_TRUE(res.HasValue()); ASSERT_TRUE(res.GetValue()); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2158,10 +2509,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2171,22 +2522,31 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); acc.Abort(); } @@ -2202,12 +2562,12 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2218,7 +2578,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2229,7 +2589,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2240,7 +2600,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2250,26 +2610,44 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2284,19 +2662,19 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { auto et = acc.NameToEdgeType("et5"); - auto edge = vertex_from->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex_from->OutEdges(storage::View::NEW).GetValue()[0]; auto res = acc.DeleteEdge(&edge); ASSERT_TRUE(res.HasValue()); ASSERT_TRUE(res.GetValue()); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2306,10 +2684,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2319,22 +2697,31 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2348,21 +2735,21 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSmallerAbort) { ASSERT_TRUE(vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -2405,14 +2792,14 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(edge.ToVertex(), *vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2422,10 +2809,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2435,20 +2822,29 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2464,12 +2860,12 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2480,7 +2876,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2491,7 +2887,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2502,7 +2898,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2512,26 +2908,44 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2546,19 +2960,19 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { auto et = acc.NameToEdgeType("et5"); - auto edge = vertex_from->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex_from->OutEdges(storage::View::NEW).GetValue()[0]; auto res = acc.DeleteEdge(&edge); ASSERT_TRUE(res.HasValue()); ASSERT_TRUE(res.GetValue()); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2568,10 +2982,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2581,22 +2995,31 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); acc.Abort(); } @@ -2612,12 +3035,12 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { auto et = acc.NameToEdgeType("et5"); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2628,7 +3051,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2640,7 +3063,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2651,7 +3074,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2661,26 +3084,44 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::NEW)->size(), + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2695,19 +3136,19 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { auto et = acc.NameToEdgeType("et5"); - auto edge = vertex_from->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex_from->OutEdges(storage::View::NEW).GetValue()[0]; auto res = acc.DeleteEdge(&edge); ASSERT_TRUE(res.HasValue()); ASSERT_TRUE(res.GetValue()); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2717,10 +3158,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2730,22 +3171,31 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex_from->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_from->OutEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); - ASSERT_EQ(vertex_to->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex_to->InEdges({et, other_et}, storage::View::OLD)->size(), + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_to)->size(), 1); + ASSERT_EQ( + vertex_from->OutEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_from)->size(), + 1); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD, {}, &*vertex_to)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2759,21 +3209,21 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromLargerAbort) { ASSERT_TRUE(vertex_to); // Check edges without filters - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->OutDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -2810,10 +3260,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(edge.ToVertex(), *vertex); // Check edges without filters - ASSERT_EQ(vertex->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::OLD), 0); { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2823,10 +3273,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::OLD), 0); { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2840,10 +3290,16 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2858,7 +3314,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { // Check edges without filters { - auto ret = vertex->InEdges({}, storage::View::OLD); + auto ret = vertex->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2869,7 +3325,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2880,7 +3336,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::OLD); + auto ret = vertex->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2891,7 +3347,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2905,14 +3361,26 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::OLD, {other_et}, &*vertex)->size(), 0); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -2925,7 +3393,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { auto et = acc.NameToEdgeType("et5"); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto res = acc.DeleteEdge(&edge); ASSERT_TRUE(res.HasValue()); @@ -2933,7 +3401,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { // Check edges without filters { - auto ret = vertex->InEdges({}, storage::View::OLD); + auto ret = vertex->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2943,10 +3411,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::NEW), 0); { - auto ret = vertex->OutEdges({}, storage::View::OLD); + auto ret = vertex->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2956,16 +3424,22 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::OLD)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::OLD, {other_et}, &*vertex)->size(), 0); acc.Abort(); } @@ -2980,7 +3454,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { // Check edges without filters { - auto ret = vertex->InEdges({}, storage::View::OLD); + auto ret = vertex->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -2991,7 +3465,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->InEdges({}, storage::View::NEW); + auto ret = vertex->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3002,7 +3476,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::OLD); + auto ret = vertex->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3013,7 +3487,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.ToVertex(), *vertex); } { - auto ret = vertex->OutEdges({}, storage::View::NEW); + auto ret = vertex->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3027,14 +3501,26 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::NEW)->size(), 1); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::NEW)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::NEW)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::OLD, {other_et}, &*vertex)->size(), 0); + ASSERT_EQ( + vertex->OutEdges(storage::View::NEW, {other_et}, &*vertex)->size(), 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -3047,7 +3533,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { auto et = acc.NameToEdgeType("et5"); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto res = acc.DeleteEdge(&edge); ASSERT_TRUE(res.HasValue()); @@ -3055,7 +3541,7 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { // Check edges without filters { - auto ret = vertex->InEdges({}, storage::View::OLD); + auto ret = vertex->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3065,10 +3551,10 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::NEW), 0); { - auto ret = vertex->OutEdges({}, storage::View::OLD); + auto ret = vertex->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3078,16 +3564,22 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_EQ(e.FromVertex(), *vertex); ASSERT_EQ(e.ToVertex(), *vertex); } - ASSERT_EQ(vertex->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::NEW), 0); auto other_et = acc.NameToEdgeType("other"); // Check edges with filters - ASSERT_EQ(vertex->InEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->InEdges({et, other_et}, storage::View::OLD)->size(), 1); - ASSERT_EQ(vertex->OutEdges({other_et}, storage::View::OLD)->size(), 0); - ASSERT_EQ(vertex->OutEdges({et, other_et}, storage::View::OLD)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ(vertex->InEdges(storage::View::OLD, {other_et}, &*vertex)->size(), + 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {other_et})->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {et, other_et})->size(), 1); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD, {}, &*vertex)->size(), 1); + ASSERT_EQ( + vertex->OutEdges(storage::View::OLD, {other_et}, &*vertex)->size(), 0); ASSERT_FALSE(acc.Commit().HasError()); } @@ -3099,13 +3591,13 @@ TEST_P(StorageEdgeTest, EdgeDeleteFromSameAbort) { ASSERT_TRUE(vertex); // Check edges without filters - ASSERT_EQ(vertex->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -3139,10 +3631,10 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleCommit) { gid_to = vertex_to.Gid(); // Check edges - ASSERT_EQ(vertex_from.InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from.InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from.InDegree(storage::View::NEW), 0); { - auto ret = vertex_from.OutEdges({}, storage::View::NEW); + auto ret = vertex_from.OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3153,7 +3645,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleCommit) { ASSERT_EQ(e.ToVertex(), vertex_to); } { - auto ret = vertex_to.InEdges({}, storage::View::NEW); + auto ret = vertex_to.InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3163,7 +3655,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleCommit) { ASSERT_EQ(e.FromVertex(), vertex_from); ASSERT_EQ(e.ToVertex(), vertex_to); } - ASSERT_EQ(vertex_to.OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to.OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to.OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -3194,14 +3686,14 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleCommit) { } // Check edges - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex_from->InDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3211,12 +3703,12 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex_from->OutDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3226,11 +3718,11 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleCommit) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -3245,13 +3737,13 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleCommit) { ASSERT_TRUE(vertex_to); // Check edges - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); } } @@ -3308,7 +3800,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { // Check edges { - auto ret = vertex1.InEdges({}, storage::View::NEW); + auto ret = vertex1.InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3330,7 +3822,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { } } { - auto ret = vertex1.OutEdges({}, storage::View::NEW); + auto ret = vertex1.OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3352,7 +3844,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { } } { - auto ret = vertex2.InEdges({}, storage::View::NEW); + auto ret = vertex2.InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3374,7 +3866,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { } } { - auto ret = vertex2.OutEdges({}, storage::View::NEW); + auto ret = vertex2.OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3428,7 +3920,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { // Check edges { - auto ret = vertex1->InEdges({}, storage::View::OLD); + auto ret = vertex1->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3449,12 +3941,12 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { ASSERT_EQ(e.ToVertex(), *vertex1); } } - ASSERT_EQ(vertex1->InEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex1->InEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex1->InDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex1->OutEdges({}, storage::View::OLD); + auto ret = vertex1->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3475,12 +3967,12 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { ASSERT_EQ(e.ToVertex(), *vertex1); } } - ASSERT_EQ(vertex1->OutEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex1->OutEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex1->OutDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex2->InEdges({}, storage::View::OLD); + auto ret = vertex2->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3502,7 +3994,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { } } { - auto ret = vertex2->InEdges({}, storage::View::NEW); + auto ret = vertex2->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3513,7 +4005,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { ASSERT_EQ(e.ToVertex(), *vertex2); } { - auto ret = vertex2->OutEdges({}, storage::View::OLD); + auto ret = vertex2->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3535,7 +4027,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { } } { - auto ret = vertex2->OutEdges({}, storage::View::NEW); + auto ret = vertex2->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3561,7 +4053,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { // Check edges { - auto ret = vertex2->InEdges({}, storage::View::OLD); + auto ret = vertex2->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3572,7 +4064,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { ASSERT_EQ(e.ToVertex(), *vertex2); } { - auto ret = vertex2->InEdges({}, storage::View::NEW); + auto ret = vertex2->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3583,7 +4075,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { ASSERT_EQ(e.ToVertex(), *vertex2); } { - auto ret = vertex2->OutEdges({}, storage::View::OLD); + auto ret = vertex2->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3594,7 +4086,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleCommit) { ASSERT_EQ(e.ToVertex(), *vertex2); } { - auto ret = vertex2->OutEdges({}, storage::View::NEW); + auto ret = vertex2->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3634,10 +4126,10 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { gid_to = vertex_to.Gid(); // Check edges - ASSERT_EQ(vertex_from.InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from.InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from.InDegree(storage::View::NEW), 0); { - auto ret = vertex_from.OutEdges({}, storage::View::NEW); + auto ret = vertex_from.OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3648,7 +4140,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { ASSERT_EQ(e.ToVertex(), vertex_to); } { - auto ret = vertex_to.InEdges({}, storage::View::NEW); + auto ret = vertex_to.InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3658,7 +4150,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { ASSERT_EQ(e.FromVertex(), vertex_from); ASSERT_EQ(e.ToVertex(), vertex_to); } - ASSERT_EQ(vertex_to.OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to.OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to.OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -3689,14 +4181,14 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { } // Check edges - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex_from->InDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3706,12 +4198,12 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex_from->OutDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3721,11 +4213,11 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); acc.Abort(); @@ -3742,10 +4234,10 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { auto et = acc.NameToEdgeType("et5"); // Check edges - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::NEW), 0); { - auto ret = vertex_from->OutEdges({}, storage::View::NEW); + auto ret = vertex_from->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3756,7 +4248,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { ASSERT_EQ(e.ToVertex(), *vertex_to); } { - auto ret = vertex_to->InEdges({}, storage::View::NEW); + auto ret = vertex_to->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3766,7 +4258,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -3797,14 +4289,14 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { } // Check edges - ASSERT_EQ(vertex_from->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_from->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_from->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_from->InEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex_from->InEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex_from->InDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex_from->OutEdges({}, storage::View::OLD); + auto ret = vertex_from->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3814,12 +4306,12 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_from->OutEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex_from->OutEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex_from->OutDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex_to->InEdges({}, storage::View::OLD); + auto ret = vertex_to->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -3829,11 +4321,11 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { ASSERT_EQ(e.FromVertex(), *vertex_from); ASSERT_EQ(e.ToVertex(), *vertex_to); } - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); ASSERT_FALSE(acc.Commit().HasError()); @@ -3848,13 +4340,13 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteSingleAbort) { ASSERT_TRUE(vertex_to); // Check edges - ASSERT_EQ(vertex_to->InEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->InEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->InEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->InDegree(storage::View::NEW), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::OLD)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::OLD)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::OLD), 0); - ASSERT_EQ(vertex_to->OutEdges({}, storage::View::NEW)->size(), 0); + ASSERT_EQ(vertex_to->OutEdges(storage::View::NEW)->size(), 0); ASSERT_EQ(*vertex_to->OutDegree(storage::View::NEW), 0); } } @@ -3911,7 +4403,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { // Check edges { - auto ret = vertex1.InEdges({}, storage::View::NEW); + auto ret = vertex1.InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3933,7 +4425,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex1.OutEdges({}, storage::View::NEW); + auto ret = vertex1.OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3955,7 +4447,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2.InEdges({}, storage::View::NEW); + auto ret = vertex2.InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -3977,7 +4469,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2.OutEdges({}, storage::View::NEW); + auto ret = vertex2.OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4031,7 +4523,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { // Check edges { - auto ret = vertex1->InEdges({}, storage::View::OLD); + auto ret = vertex1->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4052,12 +4544,12 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { ASSERT_EQ(e.ToVertex(), *vertex1); } } - ASSERT_EQ(vertex1->InEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex1->InEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex1->InDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex1->OutEdges({}, storage::View::OLD); + auto ret = vertex1->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4078,12 +4570,12 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { ASSERT_EQ(e.ToVertex(), *vertex1); } } - ASSERT_EQ(vertex1->OutEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex1->OutEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex1->OutDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex2->InEdges({}, storage::View::OLD); + auto ret = vertex2->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4105,7 +4597,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2->InEdges({}, storage::View::NEW); + auto ret = vertex2->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -4116,7 +4608,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { ASSERT_EQ(e.ToVertex(), *vertex2); } { - auto ret = vertex2->OutEdges({}, storage::View::OLD); + auto ret = vertex2->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4138,7 +4630,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2->OutEdges({}, storage::View::NEW); + auto ret = vertex2->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -4167,7 +4659,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { // Check edges { - auto ret = vertex1->InEdges({}, storage::View::OLD); + auto ret = vertex1->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4189,7 +4681,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex1->InEdges({}, storage::View::NEW); + auto ret = vertex1->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4211,7 +4703,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex1->OutEdges({}, storage::View::OLD); + auto ret = vertex1->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4233,7 +4725,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex1->OutEdges({}, storage::View::NEW); + auto ret = vertex1->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4255,7 +4747,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2->InEdges({}, storage::View::OLD); + auto ret = vertex2->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4277,7 +4769,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2->InEdges({}, storage::View::NEW); + auto ret = vertex2->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4299,7 +4791,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2->OutEdges({}, storage::View::OLD); + auto ret = vertex2->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4321,7 +4813,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2->OutEdges({}, storage::View::NEW); + auto ret = vertex2->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4375,7 +4867,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { // Check edges { - auto ret = vertex1->InEdges({}, storage::View::OLD); + auto ret = vertex1->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4396,12 +4888,12 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { ASSERT_EQ(e.ToVertex(), *vertex1); } } - ASSERT_EQ(vertex1->InEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex1->InEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex1->InDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex1->OutEdges({}, storage::View::OLD); + auto ret = vertex1->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4422,12 +4914,12 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { ASSERT_EQ(e.ToVertex(), *vertex1); } } - ASSERT_EQ(vertex1->OutEdges({}, storage::View::NEW).GetError(), + ASSERT_EQ(vertex1->OutEdges(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); ASSERT_EQ(vertex1->OutDegree(storage::View::NEW).GetError(), storage::Error::DELETED_OBJECT); { - auto ret = vertex2->InEdges({}, storage::View::OLD); + auto ret = vertex2->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4449,7 +4941,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2->InEdges({}, storage::View::NEW); + auto ret = vertex2->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -4460,7 +4952,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { ASSERT_EQ(e.ToVertex(), *vertex2); } { - auto ret = vertex2->OutEdges({}, storage::View::OLD); + auto ret = vertex2->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); std::sort(edges.begin(), edges.end(), [](const auto &a, const auto &b) { @@ -4482,7 +4974,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { } } { - auto ret = vertex2->OutEdges({}, storage::View::NEW); + auto ret = vertex2->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -4508,7 +5000,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { // Check edges { - auto ret = vertex2->InEdges({}, storage::View::OLD); + auto ret = vertex2->InEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -4519,7 +5011,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { ASSERT_EQ(e.ToVertex(), *vertex2); } { - auto ret = vertex2->InEdges({}, storage::View::NEW); + auto ret = vertex2->InEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -4530,7 +5022,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { ASSERT_EQ(e.ToVertex(), *vertex2); } { - auto ret = vertex2->OutEdges({}, storage::View::OLD); + auto ret = vertex2->OutEdges(storage::View::OLD); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -4541,7 +5033,7 @@ TEST_P(StorageEdgeTest, VertexDetachDeleteMultipleAbort) { ASSERT_EQ(e.ToVertex(), *vertex2); } { - auto ret = vertex2->OutEdges({}, storage::View::NEW); + auto ret = vertex2->OutEdges(storage::View::NEW); ASSERT_TRUE(ret.HasValue()); auto edges = ret.GetValue(); ASSERT_EQ(edges.size(), 1); @@ -4609,7 +5101,7 @@ TEST(StorageWithProperties, EdgePropertyCommit) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4640,7 +5132,7 @@ TEST(StorageWithProperties, EdgePropertyCommit) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4673,7 +5165,7 @@ TEST(StorageWithProperties, EdgePropertyCommit) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4715,7 +5207,7 @@ TEST(StorageWithProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4759,7 +5251,7 @@ TEST(StorageWithProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4781,7 +5273,7 @@ TEST(StorageWithProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4825,7 +5317,7 @@ TEST(StorageWithProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4858,7 +5350,7 @@ TEST(StorageWithProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4903,7 +5395,7 @@ TEST(StorageWithProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4936,7 +5428,7 @@ TEST(StorageWithProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -4981,7 +5473,7 @@ TEST(StorageWithProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -5023,7 +5515,7 @@ TEST(StorageWithProperties, EdgePropertySerializationError) { { auto vertex = acc1.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property1 = acc1.NameToProperty("property1"); auto property2 = acc1.NameToProperty("property2"); @@ -5057,7 +5549,7 @@ TEST(StorageWithProperties, EdgePropertySerializationError) { { auto vertex = acc2.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property1 = acc2.NameToProperty("property1"); auto property2 = acc2.NameToProperty("property2"); @@ -5085,7 +5577,7 @@ TEST(StorageWithProperties, EdgePropertySerializationError) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property1 = acc.NameToProperty("property1"); auto property2 = acc.NameToProperty("property2"); @@ -5135,7 +5627,7 @@ TEST(StorageWithProperties, EdgePropertyClear) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; ASSERT_EQ(edge.GetProperty(property1, storage::View::OLD)->ValueString(), "value"); @@ -5170,7 +5662,7 @@ TEST(StorageWithProperties, EdgePropertyClear) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto res = edge.SetProperty(property2, storage::PropertyValue(42)); ASSERT_TRUE(res.HasValue()); @@ -5182,7 +5674,7 @@ TEST(StorageWithProperties, EdgePropertyClear) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; ASSERT_EQ(edge.GetProperty(property1, storage::View::OLD)->ValueString(), "value"); @@ -5218,7 +5710,7 @@ TEST(StorageWithProperties, EdgePropertyClear) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; ASSERT_TRUE(edge.GetProperty(property1, storage::View::NEW)->IsNull()); ASSERT_TRUE(edge.GetProperty(property2, storage::View::NEW)->IsNull()); @@ -5248,7 +5740,7 @@ TEST(StorageWithoutProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -5280,7 +5772,7 @@ TEST(StorageWithoutProperties, EdgePropertyAbort) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; auto property = acc.NameToProperty("property5"); @@ -5317,7 +5809,7 @@ TEST(StorageWithoutProperties, EdgePropertyClear) { auto acc = store.Access(); auto vertex = acc.FindVertex(gid, storage::View::OLD); ASSERT_TRUE(vertex); - auto edge = vertex->OutEdges({}, storage::View::NEW).GetValue()[0]; + auto edge = vertex->OutEdges(storage::View::NEW).GetValue()[0]; ASSERT_EQ(edge.ClearProperties().GetError(), storage::Error::PROPERTIES_DISABLED); diff --git a/tests/unit/storage_v2_gc.cpp b/tests/unit/storage_v2_gc.cpp index df7d20612..02ccd2a79 100644 --- a/tests/unit/storage_v2_gc.cpp +++ b/tests/unit/storage_v2_gc.cpp @@ -129,7 +129,7 @@ TEST(StorageV2Gc, Sanity) { auto vertex = acc.FindVertex(vertices[i], storage::View::NEW); EXPECT_EQ(vertex.has_value(), i % 5 != 0 && i % 3 != 0); if (vertex.has_value()) { - auto out_edges = vertex->OutEdges({}, storage::View::NEW); + auto out_edges = vertex->OutEdges(storage::View::NEW); if (i % 5 != 4 && i % 3 != 2) { EXPECT_EQ(out_edges.GetValue().size(), 1); EXPECT_EQ(*vertex->OutDegree(storage::View::NEW), 1); @@ -138,7 +138,7 @@ TEST(StorageV2Gc, Sanity) { EXPECT_TRUE(out_edges->empty()); } - auto in_edges = vertex->InEdges({}, storage::View::NEW); + auto in_edges = vertex->InEdges(storage::View::NEW); if (i % 5 != 1 && i % 3 != 1) { EXPECT_EQ(in_edges.GetValue().size(), 1); EXPECT_EQ(*vertex->InDegree(storage::View::NEW), 1);