/***************************************************
 ** @author   STF 451
 ** @version  0.0.1
 ** @purpose  1:6.3.2, Ensure that the IUT correctly handles assignments from structures having compatible types and lengths
 ** @verdict  pass accept, ttcn3verdict:pass
 ***************************************************/

module Sem_060302_structured_types_006 {

    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_Sem_060302_structured_types_006() runs on GeneralComp {

        var IntegerList v_list1:={0,-};
        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_list1:=v_matcher;
        v_list2:=v_list1;


        v_check1 := (v_list2[0]==1);

        if ( v_check1 )
        {
            setverdict(pass);
        }
        else {
            setverdict(fail);
        }
    }

    control{
        execute(TC_Sem_060302_structured_types_006());
    }

}
