#include <xtd/xtd.tunit>
 
 
namespace unit_tests {
  class class_with_insert_stream_operator {
  public:
    class_with_insert_stream_operator() = default;
    explicit class_with_insert_stream_operator(int value) : value_(value) {}
    
    int value() const noexcept {return value_;}
    
    bool operator==(const class_with_insert_stream_operator& c) const noexcept {return value_ == c.value_;}
    bool operator!=(const class_with_insert_stream_operator& c) const noexcept {return !operator==(c);}
    
    friend std::ostream& operator <<(std::ostream& os, const class_with_insert_stream_operator& c) {
      return os << "(value = " << c.value_ << ")";
    }
    
  private:
    int value_ = 0;
  };
  
  class test_class_(test) {
      auto c1 = class_with_insert_stream_operator {42};
      auto c2 = class_with_insert_stream_operator {42};
      assert::are_equal(c1, c2);
    }
    
      auto c1 = class_with_insert_stream_operator {42};
      auto c2 = class_with_insert_stream_operator {24};
      assert::are_equal(c1, c2);
    }
  };
}
 
auto main() -> int {
}
 
The console_unit_test class is console unit test interface.
Definition console_unit_test.hpp:23
 
int32 run() noexcept
Runs all tests in this unit_test object and prints the result.
 
#define test_method_(method_name)
Add test method to class test.
Definition test_method_attribute.hpp:73
 
The tunit namespace contains a unit test library.
Definition abort_error.hpp:10