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

 /* The following requirements are tested:
 * omit restriction:
 * The omit operatoion checks if a template instance fullfils conditions of the omit restriction.
 */

module Sem_1512_TheOmitOperation_001 {

	type component GeneralComp {}

	type record ExampleType {
		integer a,
		boolean b optional
	}

	template ExampleType m_originalOmit := omit;
	template(omit) ExampleType m_targetOmit := omit(m_originalOmit);

	testcase TC_Sem_1512_TheOmitOperation_001() runs on GeneralComp {

		var template(omit) ExampleType v_omit;

		v_omit := m_targetOmit;

		if ( ispresent(v_omit) ) {
			setverdict(fail);
		} else {
			setverdict(pass);
		}
	}

	control {
		execute(TC_Sem_1512_TheOmitOperation_001());
	};
}

