anchor.diff:              result_error()
       end.
   
  -results_valid(byzantine, CountProcess, Monkey, Result, ProperResult, Delta) ->
  -    LiveProcesses = CountProcess * (1.0 - Monkey),
  -    QuorumProcesses = CountProcess - cloudi_math:floor((CountProcess - 1) / 3),
  -    OnEdge = ((QuorumProcesses =< (LiveProcesses + Delta)) andalso
  -              (QuorumProcesses >= (LiveProcesses - Delta))),
  -    if
  -        OnEdge =:= true ->
  -            true;
  -        true ->
  -            (Result == ProperResult)
  -    end;
  -results_valid(Quorum, CountProcess, Monkey, Result, ProperResult, Delta)
  -    when is_integer(Quorum) ->
  -    LiveProcesses = CountProcess * (1.0 - Monkey),
  -    QuorumProcesses = Quorum,
  -    OnEdge = ((QuorumProcesses =< (LiveProcesses + Delta)) andalso
  -              (QuorumProcesses >= (LiveProcesses - Delta))),
  -    if
  -        OnEdge =:= true ->
  -            true;
  -        true ->
  -            (Result == ProperResult)
  -    end;
  -results_valid(Quorum, CountProcess, Monkey, Result, ProperResult, Delta)
  -    when is_float(Quorum) ->
  -    LiveProcesses = CountProcess * (1.0 - Monkey),
  -    QuorumProcesses = erlang:min(CountProcess,
  -                                 cloudi_math:ceil(Quorum * CountProcess)),
  -    OnEdge = ((QuorumProcesses =< (LiveProcesses + Delta)) andalso
  -              (QuorumProcesses >= (LiveProcesses - Delta))),
  -    if
  -        OnEdge =:= true ->
  -            true;
  -        true ->
  -            (Result == ProperResult)
  -    end.
  -
   count_process_successes(CountProcess, Monkey) ->
       erlang:min(erlang:round(CountProcess * (1.0 - Monkey)), CountProcess).
   
  
positive.code:      ServiceId <- ServiceIdsN],
      ProperResult = result_expected(QuorumType, CountProcess, Monkey,
                                     RequestInfo, Request),
      case results_valid(QuorumType, CountProcess, Monkey,
                         Result, ProperResult, 0.5) of
          true ->
              true;
          false ->
              error_logger:error_msg("quorum_timeout (~p, ~p, ~p)~n ~p /= ~p~n",
                                     [QuorumType, CountProcess, Monkey,
                                      Result, ProperResult]),
              false
      end.
  
  t_quorum_crash_byzantine(Config) ->
  
negative.code:      ServiceId <- ServiceIdsN],
      ProperResult = result_expected(QuorumType, CountProcess, Monkey,
                                     RequestInfo, Request),
      if
          Result /= ProperResult ->
              error_logger:error_msg("quorum_crash (~p, ~p, ~p)~n ~p /= ~p~n",
                                     [QuorumType, CountProcess, Monkey,
                                      Result, ProperResult]),
              false;
          true ->
              true
      end.
  
  %%%------------------------------------------------------------------------
  