anchor.diff:  %% @version $Id$
   -module(tester_value_creator).
   -author('schuett@zib.de').
  --vsn('$Id$').
  +-vsn('$Id$ ').
   
   -include("unittest.hrl").
   -include("tester.hrl").
  
positive.code:     case crypto:rand_uniform(0, 2) of
          0 -> false;
          1 -> true
      end;
  create_value_(nil, _Size, _ParseState) ->
      [];
  create_value_(node, _Size, _ParseState) ->
      % @todo
      node();
  create_value_(pid, _Size, _ParseState) ->
      % @todo
      self();
  create_value_(atom, _Size, ParseState) ->
      create_val_50rand_50coll(
        ParseState, fun tester_parse_state:get_atoms/1,
        fun() -> lists:nth(crypto:rand_uniform(1, 5), [one, two, three, four]) end);
  create_value_(float, _Size, ParseState) ->
      create_val_50rand_50coll(
        ParseState, fun tester_parse_state:get_floats/1,
        fun() -> crypto:rand_uniform(-5, 5) * (crypto:rand_uniform(0, 30323) / 30323.0) end);
  create_value_({range, {integer, Low}, {integer, High}}, _Size, _ParseState) ->
      crypto:rand_uniform(Low, High + 1);
  create_value_({union, Types}, Size, ParseState) ->
      Length = length(Types),
      create_value(lists:nth(crypto:rand_uniform(1, Length + 1), Types),
                   Size, ParseState);
  create_value_({record, Module, TypeName}, Size, ParseState) ->
      case tester_parse_state:lookup_type({record, Module, TypeName}, ParseState) of
          {value, RecordType} ->
              create_record_value(TypeName, RecordType, Size, ParseState);
          none ->
              ?ct_fail("error: unknown record type: ~p:~p", [Module, TypeName])
      end;
  create_value_({record, _Module, TypeName, FieldTypes}, Size, ParseState) ->
      create_record_value(TypeName, FieldTypes, Size, ParseState);
  create_value_({typed_record_field, _Name, Type}, Size, ParseState) ->
      create_value(Type, Size, ParseState);
  create_value_({field_type, _Name, Type}, Size, ParseState) ->
      create_value(Type, Size, ParseState);
  %%create_value({typedef, tester, test_any}, Size, TypeInfo) ->
      %% @todo
  create_value_({typedef, Module, TypeName}, Size, ParseState) ->
      case tester_parse_state:lookup_type({type, Module, TypeName}, ParseState) of
          {value, TypeSpec} ->
              create_value(TypeSpec, Size, ParseState);
          none ->
              ?ct_fail("error: unknown type ~p:~p~n", [Module, TypeName])
      end;
  create_value_({builtin_type, array}, Size, ParseState) ->
      L = create_value({list,
  
negative.code:     end.
  
  -spec create_value_(type_spec(), non_neg_integer(), tester_parse_state:state()) -> term().
  
  
  create_value_(atom, _Size, ParseState) ->
      create_val_50rand_50coll(
        ParseState, fun tester_parse_state:get_atoms/1,
        fun() -> lists:nth(crypto:rand_uniform(1, 5), [one, two, three, four]) end);
  create_value_({atom, Value}, _Size, _ParseState) ->
      Value;
  create_value_(binary, Size, ParseState) ->
  