66#if GTEST_HAS_STRING_PIECE_
82 *
this =
Eq(
s.ToString());
97 *
this =
Eq(
s.ToString());
106 switch (fields.size()) {
112 string result =
"(" + fields[0];
113 for (
size_t i = 1; i < fields.size(); i++) {
128 const char* matcher_name,
131 if (param_values.size() >= 1)
209 ::std::vector<char> seen;
222 for (
size_t ilhs = 0; ilhs <
graph_->LhsSize(); ++ilhs) {
226 <<
"ilhs: " << ilhs <<
", left_[ilhs]: " <<
left_[ilhs];
228 seen.assign(
graph_->RhsSize(), 0);
232 for (
size_t ilhs = 0; ilhs <
left_.size(); ++ilhs) {
233 size_t irhs =
left_[ilhs];
241 static const size_t kUnused =
static_cast<size_t>(-1);
260 for (
size_t irhs = 0; irhs <
graph_->RhsSize(); ++irhs) {
263 if (!
graph_->HasEdge(ilhs, irhs))
313 ::std::ostream* stream) {
314 typedef ElementMatcherPairs::const_iterator Iter;
315 ::std::ostream& os = *stream;
317 const char *sep =
"";
318 for (Iter it = pairs.begin(); it != pairs.end(); ++it) {
320 <<
"element #" << it->first <<
", "
321 <<
"matcher #" << it->second <<
")";
332 size_t max_flow = matches.size();
337 *listener <<
"where no permutation of the elements can "
338 "satisfy all matchers, and the closest match is "
339 << max_flow <<
" of " << matrix.
RhsSize()
340 <<
" matchers with the pairings:\n";
346 if (matches.size() > 1) {
348 const char *sep =
"where:\n";
349 for (
size_t mi = 0; mi < matches.size(); ++mi) {
350 *listener << sep <<
" - element #" << matches[mi].first
351 <<
" is matched by matcher #" << matches[mi].second;
360 for (
size_t ilhs = 0; ilhs <
LhsSize(); ++ilhs) {
361 for (
size_t irhs = 0; irhs <
RhsSize(); ++irhs) {
374 for (
size_t ilhs = 0; ilhs <
LhsSize(); ++ilhs) {
375 for (
size_t irhs = 0; irhs <
RhsSize(); ++irhs) {
377 b =
static_cast<char>(rand() & 1);
383 ::std::stringstream ss;
384 const char *sep =
"";
385 for (
size_t i = 0; i <
LhsSize(); ++i) {
387 for (
size_t j = 0; j <
RhsSize(); ++j) {
396 ::std::ostream* os)
const {
402 *os <<
"has " <<
Elements(1) <<
" and that element ";
407 <<
" and there exists some permutation of elements such that:\n";
408 const char* sep =
"";
410 *os << sep <<
" - element #" << i <<
" ";
417 ::std::ostream* os)
const {
419 *os <<
"isn't empty";
423 *os <<
"doesn't have " <<
Elements(1)
424 <<
", or has " <<
Elements(1) <<
" that ";
429 <<
", or there exists no permutation of elements such that:\n";
430 const char* sep =
"";
432 *os << sep <<
" - element #" << i <<
" ";
445 const ::std::vector<string>& element_printouts,
449 ::std::vector<char> element_matched(matrix.
LhsSize(), 0);
450 ::std::vector<char> matcher_matched(matrix.
RhsSize(), 0);
452 for (
size_t ilhs = 0; ilhs < matrix.
LhsSize(); ilhs++) {
453 for (
size_t irhs = 0; irhs < matrix.
RhsSize(); irhs++) {
454 char matched = matrix.
HasEdge(ilhs, irhs);
455 element_matched[ilhs] |= matched;
456 matcher_matched[irhs] |= matched;
462 "where the following matchers don't match any elements:\n";
463 for (
size_t mi = 0; mi < matcher_matched.size(); ++mi) {
464 if (matcher_matched[mi])
468 *listener << sep <<
"matcher #" << mi <<
": ";
477 "where the following elements don't match any matchers:\n";
478 const char* outer_sep =
"";
480 outer_sep =
"\nand ";
482 for (
size_t ei = 0; ei < element_matched.size(); ++ei) {
483 if (element_matched[ei])
487 *listener << outer_sep << sep <<
"element #" << ei <<
": "
488 << element_printouts[ei];
#define s(x, c)
Definition aesb.c:47
cryptonote::block b
Definition block.cpp:40
Definition gmock-matchers.h:80
::std::ostream * stream()
Definition gmock-matchers.h:98
bool IsInterested() const
Definition gmock-matchers.h:104
Matcher()
Definition gmock-matchers.h:324
Definition gmock-matchers.h:3257
size_t LhsSize() const
Definition gmock-matchers.h:3265
bool NextGraph()
Definition gmock-matchers.cc:359
bool HasEdge(size_t ilhs, size_t irhs) const
Definition gmock-matchers.h:3267
string DebugString() const
Definition gmock-matchers.cc:382
size_t SpaceIndex(size_t ilhs, size_t irhs) const
Definition gmock-matchers.h:3284
::std::vector< char > matched_
Definition gmock-matchers.h:3294
size_t RhsSize() const
Definition gmock-matchers.h:3266
void Randomize()
Definition gmock-matchers.cc:373
Definition gmock-matchers.cc:198
static const size_t kUnused
Definition gmock-matchers.cc:241
GTEST_DISALLOW_ASSIGN_(MaxBipartiteMatchState)
::std::vector< size_t > right_
Definition gmock-matchers.cc:300
bool TryAugment(size_t ilhs, ::std::vector< char > *seen)
Definition gmock-matchers.cc:259
MaxBipartiteMatchState(const MatchMatrix &graph)
Definition gmock-matchers.cc:200
const MatchMatrix * graph_
Definition gmock-matchers.cc:287
::std::vector< size_t > left_
Definition gmock-matchers.cc:299
ElementMatcherPairs Compute()
Definition gmock-matchers.cc:207
void DescribeToImpl(::std::ostream *os) const
Definition gmock-matchers.cc:395
bool VerifyAllElementsAndMatchersAreMatched(const ::std::vector< string > &element_printouts, const MatchMatrix &matrix, MatchResultListener *listener) const
Definition gmock-matchers.cc:444
void DescribeNegationToImpl(::std::ostream *os) const
Definition gmock-matchers.cc:416
static Message Elements(size_t n)
Definition gmock-matchers.h:3333
MatcherDescriberVec matcher_describers_
Definition gmock-matchers.h:3338
#define GTEST_API_
Definition gtest-port.h:934
#define GTEST_CHECK_(condition)
Definition gtest-port.h:1295
Definition gmock-actions.h:64
::std::vector< ElementMatcherPair > ElementMatcherPairs
Definition gmock-matchers.h:3298
::std::pair< size_t, size_t > ElementMatcherPair
Definition gmock-matchers.h:3297
GTEST_API_ string ConvertIdentifierNameToWords(const char *id_name)
Definition gmock-internal-utils.cc:54
GTEST_API_ string FormatMatcherDescription(bool negation, const char *matcher_name, const Strings ¶m_values)
Definition gmock-matchers.cc:127
GTEST_API_ string JoinAsTuple(const Strings &fields)
Definition gmock-matchers.cc:105
static void LogElementMatcherPairVec(const ElementMatcherPairs &pairs, ::std::ostream *stream)
Definition gmock-matchers.cc:312
::std::string string
Definition gtest-port.h:1097
::std::vector< string > Strings
Definition gtest-printers.h:859
GTEST_API_ ElementMatcherPairs FindMaxBipartiteMatching(const MatchMatrix &g)
Definition gmock-matchers.cc:308
GTEST_API_ bool FindPairing(const MatchMatrix &matrix, MatchResultListener *listener)
Definition gmock-matchers.cc:328
Definition gmock-actions.h:53
internal::Eq2Matcher Eq()
Definition gmock-matchers.h:4082
tools::wallet2::message_signature_result_t result
Definition signature.cpp:62