14 #ifndef OR_TOOLS_MATH_OPT_CORE_SPARSE_COLLECTION_MATCHERS_H_ 15 #define OR_TOOLS_MATH_OPT_CORE_SPARSE_COLLECTION_MATCHERS_H_ 18 #include <initializer_list> 20 #include <type_traits> 24 #include "testing/base/public/gmock.h" 25 #include "testing/base/public/gunit.h" 27 #include "ortools/math_opt/sparse_containers.pb.h" 33 std::initializer_list<std::pair<int64_t, double>> pairs);
36 std::initializer_list<std::pair<int64_t, bool>> pairs);
39 std::initializer_list<std::tuple<int64_t, int64_t, double>> values);
43 using Pairs = std::initializer_list<std::pair<int64_t, const T>>;
52 const std::vector v(iterable.begin(), iterable.end());
53 const std::vector<
typename decltype(v)::value_type> expected(pairs.begin(),
56 return ::testing::ExplainMatchResult(::testing::ContainerEq(expected), v,
61 using Coefficient = std::tuple<int64_t, int64_t, const double>;
71 std::vector<Coefficient> v;
72 for (
int i = 0; i < arg.row_ids_size(); ++i) {
73 v.emplace_back(arg.row_ids(i), arg.column_ids(i), arg.coefficients(i));
75 const std::vector<Coefficient> expected(
coefficients.begin(),
78 return ::testing::ExplainMatchResult(::testing::ContainerEq(expected), v,
85 #endif // OR_TOOLS_MATH_OPT_CORE_SPARSE_COLLECTION_MATCHERS_H_ std::initializer_list< std::pair< int64_t, const T > > Pairs
SparseDoubleVectorProto MakeSparseDoubleVector(std::initializer_list< std::pair< int64_t, double >> pairs)
SparseVectorView< T > MakeView(absl::Span< const int64_t > ids, const Collection &values)
SparseDoubleMatrixProto MakeSparseDoubleMatrix(std::initializer_list< std::tuple< int64_t, int64_t, double >> values)
MATCHER_P(SparseVectorMatcher, pairs, "")
std::initializer_list< Coefficient > Coefficients
std::tuple< int64_t, int64_t, const double > Coefficient
SparseBoolVectorProto MakeSparseBoolVector(std::initializer_list< std::pair< int64_t, bool >> pairs)
Collection of objects used to extend the Constraint Solver library.
absl::Span< const double > coefficients