Skip to content
Snippets Groups Projects
Select Git revision
  • a2ae918ed9373b7d932a2742b21ef550bbee5695
  • master default protected
  • develop protected
  • develop-0.7.x
  • develop-0.8.0
  • dev_czuk
  • loader
  • kgr10_roberta
  • 14-BiLSTM-CRF-RoBERTa
  • 12-handle-long-sequences
  • 13-flair-embeddings
  • BiLSTM
  • v0.7.0
  • v0.6.1
  • v0.5
  • v0.4.1
  • v0.3
17 results

conlleval.py

Blame
  • logicalpredicates.cpp 10.25 KiB
    #include <boost/test/unit_test.hpp>
    #include <boost/bind.hpp>
    #include <boost/shared_ptr.hpp>
    #include <libcorpus2/sentence.h>
    
    #include <libwccl/ops/constant.h>
    #include <libwccl/ops/logicalpredicate.h>
    #include <libwccl/ops/and.h>
    #include <libwccl/ops/or.h>
    #include <libwccl/ops/nor.h>
    #include <libwccl/values/bool.h>
    #include <libwccl/sentencecontext.h>
    
    using namespace Wccl;
    
    BOOST_AUTO_TEST_SUITE(logical_predicates)
    
    struct PredFix
    {
    	PredFix()
    		: sc(boost::make_shared<Corpus2::Sentence>()),
    		  tagset(),
    		  true_value(true),
    		  false_value(false),
    		  true_constant(new Constant<Bool>(true_value)),
    		  false_constant(new Constant<Bool>(false_value))
    	{
    	}
    	SentenceContext sc;
    	Corpus2::Tagset tagset;
    
    	Bool true_value;
    	Bool false_value;
    	LogicalPredicate::BoolFunctionPtr true_constant;
    	LogicalPredicate::BoolFunctionPtr false_constant;
    };
    
    BOOST_FIXTURE_TEST_CASE(predicate_constants, PredFix)
    {
    	BOOST_CHECK_EQUAL(true, Predicate::True->apply(sc)->get_value());
    	BOOST_CHECK_EQUAL(false, Predicate::False->apply(sc)->get_value());
    }
    
    BOOST_FIXTURE_TEST_CASE(and_1arg, PredFix)
    {
    	boost::shared_ptr<And::BoolFunctionPtrVector> v(new And::BoolFunctionPtrVector());
    	v->push_back(true_constant);
    	And pred_and(v);
    	BOOST_CHECK_EQUAL(true, pred_and.apply(sc)->get_value());
    	v->clear();
    	v->push_back(false_constant);
    	BOOST_CHECK_EQUAL(false, pred_and.apply(sc)->get_value());
    }
    
    
    BOOST_FIXTURE_TEST_CASE(and_2arg, PredFix)
    {
    	for(int arg1 = 0; arg1 < 2; ++arg1) {
    		for(int arg2 = 0; arg2 < 2; ++arg2) {
    			boost::shared_ptr<And::BoolFunctionPtrVector> v(new And::BoolFunctionPtrVector());
    			v->push_back(arg1 != 0 ? true_constant : false_constant);
    			v->push_back(arg2 != 0 ? true_constant : false_constant);
    			And pred_and(v);
    			BOOST_CHECK_EQUAL((arg1 != 0) && (arg2 != 0), pred_and.apply(sc)->get_value());
    		}
    	}
    }
    
    BOOST_FIXTURE_TEST_CASE(and_3arg, PredFix)
    {