#include <cppunit/TestFixture.h>
#include <cppunit/TestCaller.h>
#include <cppunit/extensions/TestFactoryRegistry.h>
#include <cppunit/extensions/HelperMacros.h>
#include "../couche.h"
#include "../neurone.h"

class CoucheTest : public CppUnit::TestFixture  {
      CPPUNIT_TEST_SUITE( CoucheTest );
      CPPUNIT_TEST( testInit );   // on enregistre les tests à faire dans l ordre
      CPPUNIT_TEST( testNextCouche );
      CPPUNIT_TEST( testOperator );
      CPPUNIT_TEST( testGetSynapse );
      CPPUNIT_TEST_EXCEPTION( testOperatorThrow, const unsigned int );
      CPPUNIT_TEST_EXCEPTION( testGetSynapseOverflow, const unsigned int);
      CPPUNIT_TEST_EXCEPTION( testGetSynapseUninitialized, std::string);
      CPPUNIT_TEST_SUITE_END();
private:
    Couche Input;// un evenement a tester
    Couche Output;// un deuxieme evenement a tester
public:
    void setUp();
    void tearDown();
    void testInit();
    void testNextCouche();
    void testOperator();
    void testOperatorThrow();
    void testGetSynapse();
    void testActive();
    void testGetSynapseOverflow();
    void testGetSynapseUninitialized();
};
