anchor.diff:                 rank_projections(MaxPs, CurrentProj)).
   
   %% Caller must ensure all Projs are of the same epoch number.
  +%% If the caller gives us projections with different epochs, we assume
  +%% that the caller is doing an OK thing.
   
   rank_projections(Projs, CurrentProj) ->
       #projection{all_members=All_list} = CurrentProj,
  
positive.code: -export([test_calc_projection/2,
           test_calc_proposed_projection/1,
           test_write_proposed_projection/1,
           test_read_latest_public_projection/2]).
  
  -ifdef(EQC).
  -include_lib("eqc/include/eqc.hrl").
  
negative.code:         %% we expect nothing to change when called again.
          {not_unanimous,_,_}=_YY = test_read_latest_public_projection(Ma, true),
  
          {now_using, _} = test_react_to_env(Ma),
          {unanimous,P2,E2} = test_read_latest_public_projection(Ma, false),
          {ok, P2pa} = machi_flu0:proj_read_latest(FLUa, private),
          P2 = P2pa#projection{dbg2=[]},
  
          %% FLUb should still be using proj #0 for its private use
          {ok, P0pb} = machi_flu0:proj_read_latest(FLUb, private),
          0 = P0pb#projection.epoch_number,
  
          %% Poke FLUb to react ... should be using the same private proj
          %% as FLUa.
          {now_using, _} = test_react_to_env(Mb),
          {ok, P2pb} = machi_flu0:proj_read_latest(FLUb, private),
          P2 = P2pb#projection{dbg2=[]},
  
          ok
      after
          ok = ?MGR:stop(Ma),
          ok = ?MGR:stop(Mb),
          ok = machi_flu0:stop(FLUa),
          ok = machi_flu0:stop(FLUb)
      end.
  