message: Extend test: Indirect evidence doesn't ban you.
diff: @@ -217,17 +217,23 @@ fn ban_and_mark_faulty() -> Result<(), AddVoteError<TestContext>> {
  let mut state = State::new(WEIGHTS, params, vec![ALICE]);
  assert_eq!(panorama![F, N, N], *state.panorama());
  + assert_eq!(Some(&Fault::Banned), state.opt_fault(ALICE));
  let err = vote_err(add_vote!(state, rng, ALICE, 0xA; N, N, N).err().unwrap());
  assert_eq!(VoteError::Banned, err);
  state.mark_faulty(ALICE); // No change: Banned state is permanent.
  assert_eq!(panorama![F, N, N], *state.panorama());
  + assert_eq!(Some(&Fault::Banned), state.opt_fault(ALICE));
  let err = vote_err(add_vote!(state, rng, ALICE, 0xA; N, N, N).err().unwrap());
  assert_eq!(VoteError::Banned, err);
  // Now we also received external evidence (i.e. not in this instance) that Bob is faulty.
  state.mark_faulty(BOB);
  assert_eq!(panorama![F, F, N], *state.panorama());
  + assert_eq!(Some(&Fault::Indirect), state.opt_fault(BOB));
  +
  + // However, we still accept messages from Bob, since he is not banned.
  + add_vote!(state, rng, BOB, 0xB; F, N, N)?;
  Ok(())
  }
  