/***************************************************
 ** @author   TTF 014
 ** @version  0.0.1
 ** @purpose  1:15.12, The present operation
 ** @verdict  pass reject
 ***************************************************/

 /* The following requirements are tested:
 * present operation:
 * A template with the present operationn shall cause an error if the operand not fulfils
 * conditions of the present template restriction.
 */

module NegSem_1512_ThePresentOperation_001 {

	type component GeneralComp {}

	type record ExampleType {
		integer a,
		boolean b optional
	}

	testcase TC_NegSem_1512_ThePresentOperation_001()	runs on GeneralComp {

		template ExampleType m_originalOmit := omit;

		template(present) ExampleType m_targetOmit := present(m_originalOmit); // causes error

		setverdict(fail);
	}

	control {
		execute(TC_NegSem_1512_ThePresentOperation_001());
	};
}