anchor.diff:  -ifdef(TEST).
   
   eval_part_sizes_test() ->
  -    true = eval_part_sizes([]),
  -    true = eval_part_sizes([999888777]),
  -    true = eval_part_sizes([777]),
  -    false = eval_part_sizes([1,51048576,51048576,51048576,436276]),
  -    false = eval_part_sizes([51048576,1,51048576,51048576,436276]),
  -    false = eval_part_sizes([51048576,1,51048576,51048576,436276]),
  -    false = eval_part_sizes([1,51048576,51048576,51048576]),
  -    false = eval_part_sizes([51048576,1,51048576,51048576]),
  -    true  = eval_part_sizes([51048576,51048576,51048576,1]),
  +    true = eval_part_sizes_wrapper([]),
  +    true = eval_part_sizes_wrapper([999888777]),
  +    true = eval_part_sizes_wrapper([777]),
  +    false = eval_part_sizes_wrapper([1,51048576,51048576,51048576,436276]),
  +    false = eval_part_sizes_wrapper([51048576,1,51048576,51048576,436276]),
  +    false = eval_part_sizes_wrapper([51048576,1,51048576,51048576,436276]),
  +    false = eval_part_sizes_wrapper([1,51048576,51048576,51048576]),
  +    false = eval_part_sizes_wrapper([51048576,1,51048576,51048576]),
  +    true  = eval_part_sizes_wrapper([51048576,51048576,51048576,1]),
       ok.
  +
  +eval_part_sizes_wrapper(L) ->
  +    try
  +        eval_part_sizes(L)
  +    catch
  +        throw:entity_too_small ->
  +            false
  +    end.
  +
  +-ifdef(EQC).
   
   eval_part_sizes_eqc_test() ->
       true = eqc:quickcheck(eqc:numtests(500, prop_part_sizes())).
   
   prop_part_sizes() ->
  -    Min_1 = ?MIN_MP_PART_SIZE - 1,
       Min = ?MIN_MP_PART_SIZE,
  -    Min100 = ?MIN_MP_PART_SIZE + 100,
  +    Min_1 = Min - 1,
  +    MinMinus100 = Min - 100,
  +    MinPlus100 = Min + 100,
       ?FORALL({L, Last, Either},
  -            {list(choose(Min, Min100)), choose(0, Min_1), choose(0, Min100)},
  -            true == eval_part_sizes(L ++ [Last]) andalso
  -            false == eval_part_sizes(L ++ [Min_1] ++ L ++ [Either])
  +            {list(choose(Min, MinPlus100)), choose(0, Min_1), choose(MinMinus100, MinPlus100)},
  +            true == eval_part_sizes_wrapper(L ++ [Last]) andalso
  +            false == eval_part_sizes_wrapper(L ++ [Min_1] ++ L ++ [Either])
              ).
  +
  +-endif. % EQC
   
   %% The test_0() and test_1() commands can be used while Riak CS is running.
   %% In fact, it's preferred (?) to do it that way because then all of the
  
positive.code:         {ok, ManiPid} = riak_cs_manifest_fsm:start_link(Bucket, Key, RiakcPid),
          try
                  {Bytes, PartsToKeep, PartsToDelete} = comb_parts(MpM, PartETags),
                  ok = enforce_part_size(PartsToKeep),
                  NewMpM = MpM?MULTIPART_MANIFEST{parts = PartsToKeep,
                                                  done_parts = [],
                                                  cleanup_parts = PartsToDelete},
  
negative.code: enforce_part_size(PartsToKeep) ->
      case riak_cs_utils:get_env(riak_cs, enforce_multipart_part_size, true) of
          true ->
              eval_part_sizes([P?PART_MANIFEST.content_length || P <- PartsToKeep]);
          false ->
              true
      end.
  
  eval_part_sizes([]) ->
      true;
  eval_part_sizes([_]) ->
      true;
  eval_part_sizes(L) ->
      case lists:min(lists:sublist(L, length(L)-1)) of
          X when X < ?MIN_MP_PART_SIZE ->
              throw(entity_too_small);
          _ ->
              true
      end.
  
  %% The intent of the wrap_* functions is to make this module's code
  %% flexible enough to support two methods of operation:
  