저는 Catch 단위 테스트 프레임 워크를 사용하고 있으며, 두 배의 벡터를 비교하고 싶습니다. 이 other answer은 Approx를 사용하여 부동 소수점/이중 값을 비교할 것을 제안하지만,이 값은 벡터에 대해 작동하지 않습니다. 이 작업을 수행하는 편리한 방법이 있습니까?두 배의 벡터 비교 캐치 사용
편집 : 예제 다음 코드와
다음과 같이 내가 코드를 변경하는 경우
가-------------------------------------------------------------------------------
Compare Vectors
-------------------------------------------------------------------------------
test/UnitTests/test_Example/example.cc:4
...............................................................................
test/UnitTests/test_Example/example.cc:7: FAILED:
REQUIRE(vec1 == vec2)
with expansion:
{ 0, 1, 2, 3 } == { 0, 1, 2, 4 }
===============================================================================
test cases: 1 | 1 failed
assertions: 1 | 1 failed
하지만, 내가 원하는 것 :
#define CATCH_CONFIG_MAIN
#include "catch.hpp"
TEST_CASE("Compare Vectors", "[vector]") {
std::vector<int> vec1 = {0, 1, 2, 3};
std::vector<int> vec2 = {0, 1, 2, 4};
REQUIRE(vec1 == vec2);
}
시험은 다음과 같은 보고서 실패 통과 할 테스트지만, 분명히하지 않습니다.
#define CATCH_CONFIG_MAIN
#include "catch.hpp"
TEST_CASE("Compare Vectors", "[vector]") {
std::vector<double> vec1 = {0, 1, 2, 3};
std::vector<double> vec2 = {0, 1, 2, 3.000001};
REQUIRE(vec1 == vec2);
}
내가 할 수있는 요소를 통해 루프 그들을 하나씩 비교하지만, 불일치의 경우에, 오류의 원인을 확인하는 것이 더 어려울 것이다.
벡터를 반복하고 요소별로 비교하는 방법은 무엇입니까? [이 질문] (http://stackoverflow.com/q/41160846/3093378)도 참조하십시오. – vsoftco
@vso 나는이 문제가 벡터 위로 반복하는 방법이 아니라 부동 소수점 숫자를 비교하는 방법이라고 생각한다. –