/***************************************************
 ** @author   STF 451
 ** @version  0.0.1
 ** @purpose  1:6.3.2, Ensure that the IUT rejects assignments having mismatch between undefined and omitted elements
 ** @verdict  pass reject
 ***************************************************/

module NegSem_060302_structured_types_012 {

    type record RecordType {
        integer  a,
        integer  b optional
    }

    type set SetType {
        integer  a,
        integer  b optional
    }

    type record length (1..2) of integer ShortIntegerList;
    type record of integer IntegerList;

    type set length (1..2) of integer ShortUnorderedIntegerList;
    type set of integer UnorderedIntegerList;


    type component GeneralComp {
    }

    testcase TC_NegSem_060302_structured_types_012() runs on GeneralComp {


        var IntegerList v_list1:={1,-};
        var ShortIntegerList v_list2;
        var RecordType v_rec1;
        var UnorderedIntegerList v_ulist1:={1,-};
        var ShortUnorderedIntegerList v_ulist2;
        var SetType v_set1;

        var integer v_matcher[2] := {1,-};

        var boolean v_check1;

        v_list2:=v_list1;
        v_rec1:=v_list2;
        v_ulist2:=v_ulist1;
        v_set1:=v_ulist2;

        v_check1 :=  match(v_rec1, v_matcher);   //mismatch between undefined and omitted elements

    }

    control{
        execute(TC_NegSem_060302_structured_types_012());
    }

}
