Ejemplo n.º 1
0
    void initParams(const openfluid::ware::WareParams_t& Params)
    {
      OPENFLUID_GetSimulatorParameter(Params,"part",m_PartStr);

      if (m_PartStr == "initparams")
        OPENFLUID_RaiseError(m_PartStr);
    }
    void initParams(const openfluid::ware::WareParams_t& Params)
    {
      openfluid::core::StringValue ParamStrVal;
      openfluid::core::DoubleValue ParamDoubleVal;
      openfluid::core::VectorValue ParamVectorVal;
      openfluid::core::MatrixValue ParamMatrixVal;
      openfluid::core::MapValue ParamMapVal;

      std::vector<std::string> ParamStrArray;
      std::vector<long> ParamLongArray;
      std::vector<double> ParamDoubleArray;


      if (!OPENFLUID_IsSimulatorParameterExist(Params,"strparam"))
         OPENFLUID_RaiseError("missing parameter (strparam)");

      if (OPENFLUID_IsSimulatorParameterExist(Params,"fakestrparam"))
         OPENFLUID_RaiseError("unexpected parameter (fakestrparam)");


      // ====== String param ======

      m_ParamString = "";
      if (!OPENFLUID_GetSimulatorParameter(Params,"strparam",m_ParamString))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strparam) get by reference");
      if (m_ParamString != "strvalue")
         OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strparam, value) get by reference");

      m_ParamString = OPENFLUID_GetSimulatorParameter(Params,"strparam");
      if (m_ParamString != "strvalue")
         OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strparam, value) get by return");

      if (OPENFLUID_GetSimulatorParameter(Params,"wrongstrparam",m_ParamString))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (wrongstrparam)");

      if (OPENFLUID_GetSimulatorParameter(Params,"strparam",ParamDoubleVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strparam) into DoubleValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"strparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strparam) into StringValue");
      if(ParamStrVal.get() != "strvalue")
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strparam, value) into StringValue");

      if (OPENFLUID_GetSimulatorParameter(Params,"wrongstrparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (wrongstrparam)  into StringValue");

      if (OPENFLUID_GetSimulatorParameter(Params,"strparam",ParamVectorVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strparam) into VectorValue");


      // ====== Double param ======

      m_ParamDouble = 0.0;
      if (!OPENFLUID_GetSimulatorParameter(Params,"doubleparam",m_ParamDouble))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doubleparam) get by reference");
      if(!openfluid::scientific::isCloseEnough(m_ParamDouble,0.1,0.00001))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doubleparam, value) get by reference");

      if (OPENFLUID_GetSimulatorParameter(Params,"wrongdoubleparam",m_ParamDouble))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (wrongdoubleparam)");

      if (!OPENFLUID_GetSimulatorParameter(Params,"doubleparam",ParamDoubleVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doubleparam) into DoubleValue");

      if(!openfluid::scientific::isCloseEnough(ParamDoubleVal.get(),0.1,0.00001))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doubleparam, value) into DoubleValue");

      if (OPENFLUID_GetSimulatorParameter(Params,"wrongdoubleparam",ParamDoubleVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (wrongdoubleparam)  into DoubleValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"doubleparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doubleparam) into StringValue");
      if(ParamStrVal.get() != "0.1")
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doubleparam, value) into StringValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"doubleparam",ParamVectorVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doubleparam) into VectorValue");
      if(ParamVectorVal.size() != 1)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doubleparam, size) into VectorValue");
      if(!openfluid::scientific::isCloseEnough(ParamVectorVal[0],0.1,0.00001))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doubleparam, value) into VectorValue");


      // ====== Long param ======

      m_ParamLong = 0;
      if (!OPENFLUID_GetSimulatorParameter(Params,"longparam",m_ParamLong))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longparam) get by reference");
      if(m_ParamLong != 10)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longparam, value) get by reference");

      if (OPENFLUID_GetSimulatorParameter(Params,"wronglongparam",m_ParamLong))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (wronglongparam)");

      if (!OPENFLUID_GetSimulatorParameter(Params,"longparam",ParamDoubleVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longparam) into DoubleValue");
      if(!openfluid::scientific::isCloseEnough<double>(ParamDoubleVal.get(),10,0.00001))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longparam, value) into DoubleValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"longparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longparam) into StringValue");
      if(ParamStrVal.get() != "10")
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longparam, value) into StringValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"longparam",ParamVectorVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longparam) into VectorValue");
      if(ParamVectorVal.size() != 1)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longparam, size) into VectorValue");
      if(!openfluid::scientific::isCloseEnough<double>(ParamVectorVal[0],10,0.00001))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longparam, value) into VectorValue");


      // ====== Bool param ======

      if (!OPENFLUID_GetSimulatorParameter(Params,"boolparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (boolparam) into StringValue");
      bool aBool = false;
      if(!ParamStrVal.toBoolean(aBool))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (boolparam, type)");
      if(aBool != true)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (boolparam, value)");


      // ====== String array param ======

      ParamStrArray.clear();
      if (!OPENFLUID_GetSimulatorParameter(Params,"strarrayparam",ParamStrArray))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strarrayparam) get by reference");
      if (ParamStrArray.size() != 3)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strarrayparam, size) get by reference");
      if (ParamStrArray[1] != "strvalue2")
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strarrayparam, value) get by reference");

      if (OPENFLUID_GetSimulatorParameter(Params,"wrongstrarrayparam",ParamStrArray))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (wrongstrarrayparam)");

      if (OPENFLUID_GetSimulatorParameter(Params,"strarrayparam",ParamDoubleVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strarrayparam) into DoubleValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"strarrayparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strarrayparam) into StringValue");
      if(ParamStrVal.get() != "strvalue1;strvalue2;strvalue3")
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strarrayparam, value) into StringValue");

      if (OPENFLUID_GetSimulatorParameter(Params,"strarrayparam",ParamVectorVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (strarrayparam) into VectorValue");


      // ====== Double array param ======

      ParamDoubleArray.clear();
      if (!OPENFLUID_GetSimulatorParameter(Params,"doublearrayparam",ParamDoubleArray))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam) get by reference");
      if (ParamDoubleArray.size() != 4)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam, size) get by reference");
      if (!openfluid::scientific::isCloseEnough(ParamDoubleArray[2],1.3,0.00001))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam, value) get by reference");
      if (openfluid::scientific::isCloseEnough(ParamDoubleArray[3],1.3,0.00001))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam, wrongvalue) "
                             "get by reference");

      if (OPENFLUID_GetSimulatorParameter(Params,"wrongdoublearrayparam",ParamDoubleArray))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (wrongdoublearrayparam)");

      if (OPENFLUID_GetSimulatorParameter(Params,"doublearrayparam",ParamDoubleVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam) into DoubleValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"doublearrayparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam) into StringValue");
      if(ParamStrVal.get() != "1.1;1.3;1.3;1.4")
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam, value) into StringValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"doublearrayparam",ParamVectorVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam) into VectorValue");
      if(ParamVectorVal.size() != 4)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam, size) into VectorValue");
      if(!openfluid::scientific::isCloseEnough(ParamVectorVal[2],1.3,0.00001))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (doublearrayparam, value) into VectorValue");


      // ====== Long array param ======

      ParamLongArray.clear();
      if (!OPENFLUID_GetSimulatorParameter(Params,"longarrayparam",ParamLongArray))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam) get by reference");
      if (ParamLongArray.size() != 5)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam, size) get by reference");
      if (ParamLongArray[3] != 14)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam, value) get by reference");
      if (ParamLongArray[4] == 14)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam, wrongvalue) get by reference");

      if (OPENFLUID_GetSimulatorParameter(Params,"wronglongarrayparam",ParamLongArray))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (wronglongarrayparam)");

      if (OPENFLUID_GetSimulatorParameter(Params,"longarrayparam",ParamDoubleVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam) into DoubleValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"longarrayparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam) into StringValue");
      if(ParamStrVal.get() != "11;12;13;14;15")
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam, value) into StringValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"longarrayparam",ParamVectorVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam) into VectorValue");
      if(ParamVectorVal.size() != 5)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam, size) into VectorValue");
      if(!openfluid::scientific::isCloseEnough<double>(ParamVectorVal[3],14,0.00001))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (longarrayparam, value) into VectorValue");

      // ====== Matrix param ======

      if (!OPENFLUID_GetSimulatorParameter(Params,"matrixparam",ParamMatrixVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam) get by reference");
      if (ParamMatrixVal.getColsNbr() != 2)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam, cols nb) get by reference");
      if (ParamMatrixVal.getRowsNbr() != 3)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam, rows nb) get by reference");
      if (!openfluid::scientific::isCloseEnough(ParamMatrixVal.get(0,0),1.1))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam, value) get by reference");
      if (!openfluid::scientific::isCloseEnough(ParamMatrixVal.get(0,1),2.1))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam, wrongvalue) get by reference");
      if (!openfluid::scientific::isCloseEnough(ParamMatrixVal.get(1,2),3.2))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam, wrongvalue) get by reference");

      if (OPENFLUID_GetSimulatorParameter(Params,"wrongmatrixparam",ParamMatrixVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (wrongmatrixparam)");

      if (OPENFLUID_GetSimulatorParameter(Params,"matrixparam",ParamDoubleVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam) into DoubleValue");

      if (OPENFLUID_GetSimulatorParameter(Params,"matrixparam",ParamVectorVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam) into VectorValue");

      if (!OPENFLUID_GetSimulatorParameter(Params,"matrixparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam) into StringValue");
      if(ParamStrVal.get() != "1.1;1.2|2.1;2.2|3.1;3.2")
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (matrixparam, value) into StringValue");


      // ====== Map param ======

      if (!OPENFLUID_GetSimulatorParameter(Params,"mapparam",ParamStrVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (mapparam) into StringValue");
      if(!ParamStrVal.toMapValue(";",ParamMapVal))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (mapparam, type)");
      if(ParamMapVal.size() != 3)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (mapparam, size)");
      double aDouble = 0.0;
      if(!ParamMapVal["key1"].asStringValue().toDouble(aDouble))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (mapparam, type for key key1)");
      if(!openfluid::scientific::isCloseEnough(aDouble,1.1))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (mapparam, value for key key1)");
      if(ParamMapVal.getString("key2") != "a string")
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (mapparam, value for key key2)");
      aBool = false;
      if(!ParamMapVal["key3"].asStringValue().toBoolean(aBool))
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (mapparam, type for key key3)");
      if(aBool != true)
        OPENFLUID_RaiseError("incorrect OPENFLUID_GetSimulatorParameter (mapparam, value for key key3)");


      // ====== Vars replacements in params ======

      std::string InPath;
      std::string OutPath;
      std::string TempPath;

      OPENFLUID_GetRunEnvironment("dir.input",InPath);
      OPENFLUID_GetRunEnvironment("dir.output",OutPath);
      OPENFLUID_GetRunEnvironment("dir.temp",TempPath);

      OPENFLUID_GetSimulatorParameter(Params,"inpath",ParamStrVal);
      if (ParamStrVal.toString() != (InPath+"/path/in"))
        OPENFLUID_RaiseError("incorrect inpath parameter value");

      OPENFLUID_GetSimulatorParameter(Params,"outpath",ParamStrVal);
      if (ParamStrVal.toString() != (OutPath+"/path/out"))
        OPENFLUID_RaiseError("incorrect outpath parameter value");

      OPENFLUID_GetSimulatorParameter(Params,"temppath",ParamStrVal);
      if (ParamStrVal.toString() != (TempPath+"/path/temp"))
        OPENFLUID_RaiseError("incorrect temppath parameter value");
    }