import static org.junit.Assert.*;
import org.junit.Test;

public class AthlèteTest {


  @Test
  public void testAthlète() {
    Athlète a = new Athlète(), b = new Athlète();
    assertFalse(a.toString().equals(b.toString()));
  }

  @Test
  public void testAthlèteItéré() {
    final int NB = 10;
    Athlète[] tab = new Athlète[NB];
    for (int i = 0; i < NB; ++i) {
      tab[i] = new Athlète();
      for (int j = 0; j < i; ++j)
        assertFalse(tab[j].toString().equals(tab[i].toString()));
    }
  }

  @Test
  public void testTémoin() {
    Athlète a = new Athlète();
    assertFalse(a.aLeTémoin());
    a.prendLeTémoin();
    assertTrue(a.aLeTémoin());
    Athlète b = new Athlète();
    a.passeLeTémoinA(b);
    assertFalse(a.aLeTémoin());
    assertTrue(b.aLeTémoin());
  }

  @Test
  public void testCourse() {
    final int NB = 100;
    Athlète a = new Athlète();
    a.prendLeTémoin(); // A ne pas oublier
    for (int i = 0; i < NB; ++i) {
      a.court();
      assertTrue(a.getDernierTemps() >= Athlète.TPS_MIN);
      assertTrue(a.getDernierTemps() <= Athlète.TPS_MAX);
    }
  }
}
