package voiture.threads;

import voiture.Voiture;

public class TestMoteur implements Runnable {
	private Voiture voitureATester;
	
	public TestMoteur(Voiture v) {
		this.voitureATester = v;
	}
	
	@Override
	public void run() {
		int n = testMoteur(this.voitureATester);
		System.out.println(this.voitureATester + " nb d'accélérations -> " + n);
	}
	
	public void start() {
		new Thread(this).start();
	}
	
	public static int testMoteur(Voiture v) {
	    int cpt = 0;
	    v.setVitesse(0);
	    while (v.getVitesse() < v.getVitesseMaximale()) {
	      v.accélérer();
	      System.out.println(v + " accélère");
	      ++cpt;
	    }
	    while (v.getVitesse() > 0){
	    	double fail = Math.random();
	    	if(fail > 0.99) {
	    		throw new RuntimeException("/!\\ Le test de freinage de la voiture " + v + " a échoué /!\\");
	    	}
	    	v.freiner();
	    	System.out.println(v + " freine");  
	    }
	    
	    return cpt;
	  }

}
