/***************************************************
 ** @author   STF 470
 ** @version  0.0.1
 ** @purpose  1:B.1.3.3, Ensure that type restriction for all from clause in permutation is applied
 ** @verdict  pass reject
 ***************************************************/

// The following requirement is tested:
// The member type of the permutation and the member type of the template in the all
// from clause shall be compatible.

module NegSem_B010303_permutation_004 {

	type record of float RoF;
	type record of integer RoI;

	template RoF t_source := { ?, * }
	// float value is not compatible with integer (even though the actual symbols are
	// generic and would work with integer elements too)
	template RoI t_perm1 := { permutation ( 3, all from t_source ) };


	type component GeneralComp {
	}

	testcase TC_NegSem_B010303_permutation_004() runs on GeneralComp {
		if (match({ 2, 3 }, t_perm1)) {
			setverdict(pass);
		} else {
			setverdict(fail);
		}
	}

	control{
	    execute(TC_NegSem_B010303_permutation_004());
	}

}
