#include <SimCore/Identifier.hpp>
#include <SimCore/SimCore.hpp>
#define CATCH_CONFIG_MAIN
#include <catch2/catch.hpp>




SCENARIO("Testing the SimCorePositionClass")
{
  GIVEN("different position in different forms")
  {
   
    SimCore::Identifier ID1(true);
    SimCore::Identifier ID2();
    SimCore::Identifier ID3();
    SimCore::Identifier ID4();


    WHEN("constructing Position Object with data")
    {

      std::string serID = ID1.serialize();
      SimCore::Identifier ID5(serID);
   
      THEN("positions attributes are correct")
      {
        REQUIRE(ID1.isValid() == 100);
        REQUIRE(ID1.isExternal() == true);

        REQUIRE(ID1 != ID2);
        REQUIRE(ID1 != ID3);
        REQUIRE(ID4 != ID3);
        
        REQUIRE(ID5 == ID1);




      } //THEN
    } // WHEN
  } // GIVEN
} //SCENARIO