libisabelle-protocol/isabelle-common/Codec_Test.thy
changeset 59209 907ce624bd20
parent 59192 68bf8b2f7593
equal deleted inserted replaced
59208:109e995e5e3b 59209:907ce624bd20
     1 theory Codec_Test
       
     2 imports Codec "~~/src/Tools/Spec_Check/Spec_Check"
       
     3 begin
       
     4 
       
     5 ML\<open>
       
     6 fun check_for str =
       
     7   let
       
     8     val prop =
       
     9       "ALL x. (let val c = (" ^ str ^ ") in Codec.decode c (Codec.encode c x) = Codec.Success x end)"
       
    10   in check_property prop end
       
    11 
       
    12 fun gen_unit r =
       
    13   ((), r)
       
    14 \<close>
       
    15 
       
    16 ML_command\<open>
       
    17   check_for "Codec.unit";
       
    18   check_for "Codec.int";
       
    19   check_for "Codec.bool";
       
    20   check_for "Codec.string";
       
    21   check_for "Codec.tuple Codec.int Codec.int";
       
    22   check_for "Codec.tuple Codec.string Codec.unit";
       
    23   check_for "Codec.list Codec.unit";
       
    24   check_for "Codec.list Codec.int";
       
    25   check_for "Codec.list Codec.string";
       
    26   check_for "Codec.list (Codec.list Codec.string)";
       
    27   check_for "Codec.list (Codec.tuple Codec.int Codec.int)";
       
    28   check_for "Codec.tuple Codec.int (Codec.list Codec.int)";
       
    29   check_for "Codec.option Codec.int";
       
    30   check_for "Codec.option (Codec.list Codec.int)";
       
    31   check_for "Codec.list (Codec.option (Codec.int))";
       
    32   check_for "Codec.term";
       
    33   check_for "Codec.typ";
       
    34 \<close>
       
    35 
       
    36 end