blob: 47e0e0e96fa9681b2ef2754b0a30b3490d8873ef [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2018, TU Wien/ACIN
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Martin Melik-Merkumians - initial tests
*******************************************************************************/
#include "../../core/fbtests/fbtester.h"
#include "../../modules/IEC61131-3/Arithmetic/F_DIV.h"
#ifdef FORTE_ENABLE_GENERATED_SOURCE_CPP
#include "F_DIV_tester_gen.cpp"
#endif
class F_DIV_tester : public CFBTester{
DECLARE_FB_TESTER(F_DIV_tester)
;
public:
private:
F_DIV_tester(CResource* mTestResource) :
CFBTester(mTestResource){
SETUP_INPUTDATA(&mIn1_DIV, &mIn2_DIV);
SETUP_OUTPUTDATA(&mOut_DIV);
}
virtual void executeAllTests(){
evaluateTestResult(testCase_validDivision(), "Valid division");
evaluateTestResult(testCase_divisionByZero(), "Division by zero");
}
/***********************************************************************************/
bool testCase_validDivision(){
mIn1_DIV = 30;
mIn2_DIV = 5;
/* trigger the inputevent */
triggerEvent(0);
return checkForSingleOutputEventOccurence(0);
}
bool testCase_divisionByZero(){
mIn1_DIV = 30;
mIn2_DIV = 0;
/* trigger the inputevent */
triggerEvent(0);
return checkForSingleOutputEventOccurence(0);
}
CIEC_INT mIn1_DIV; //DATA INPUT
CIEC_INT mIn2_DIV; //DATA INPUT
CIEC_INT mOut_DIV;
};
DEFINE_FB_TESTER(F_DIV_tester, g_nStringIdF_DIV);