You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.2 KiB
46 lines
1.2 KiB
#include <test_common.h>
|
|
#include <igl/setdiff.h>
|
|
|
|
TEST_CASE("setdiff: matrix", "[igl]")
|
|
{
|
|
// Base cases
|
|
{
|
|
const Eigen::VectorXi A = (Eigen::VectorXi(4)<<1,2,1,3).finished();
|
|
const Eigen::VectorXi B(0,1);
|
|
Eigen::VectorXi C,IA;
|
|
const Eigen::VectorXi cC = (Eigen::VectorXi(3)<<1,2,3).finished();
|
|
const Eigen::VectorXi cIA = (Eigen::VectorXi(3)<<0,1,3).finished();
|
|
igl::setdiff(A,B,C,IA);
|
|
test_common::assert_eq(C,cC);
|
|
test_common::assert_eq(IA,cIA);
|
|
}
|
|
{
|
|
const Eigen::VectorXi A(0,1);
|
|
const Eigen::VectorXi B = (Eigen::VectorXi(4)<<1,2,1,3).finished();
|
|
Eigen::VectorXi C,IA;
|
|
const Eigen::VectorXi cC(0,1);
|
|
const Eigen::VectorXi cIA(0,1);
|
|
igl::setdiff(A,B,C,IA);
|
|
test_common::assert_eq(C,cC);
|
|
test_common::assert_eq(IA,cIA);
|
|
}
|
|
|
|
{
|
|
// Monkey test
|
|
Eigen::VectorXi A(12);
|
|
A = (Eigen::VectorXd::Random(A.size(),1).array().abs()*9).cast<int>();
|
|
Eigen::VectorXi B(12);
|
|
B = (Eigen::VectorXd::Random(B.size(),1).array().abs()*9).cast<int>();
|
|
Eigen::VectorXi C,IA;
|
|
igl::setdiff(A,B,C,IA);
|
|
for(int i = 0;i<C.size();i++)
|
|
{
|
|
REQUIRE (A(IA(i)) == C(i));
|
|
for(int j = 0;j<B.size();j++)
|
|
{
|
|
REQUIRE (C(i) != B(j));
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|