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

#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));
}
}
}
}