var assert = require("chai").assert;
var TennisGame = require("../src/TennisGame");


describe('Tennis Score', function() {
    
     var tests = [
      [0, 0, "Love-All"],
      [1, 1, "Fifteen-All"],
      [2, 2, "Thirty-All"],
      [3, 3, "Deuce"],
      [4, 4, "Deuce"],
      
      [0, 1, "Love-Fifteen"],
      [1, 0, "Fifteen-Love"],
      [0, 2, "Love-Thirty"],
      [2, 0, "Thirty-Love"],
      [0, 3, "Love-Fourty"],
      [3, 0, "Fourty-Love"],
      
      [0, 4, "Win for player2"],
      [4, 0, "Win for player1"],
      [4, 1, "Win for player1"], 
      [1, 4, "Win for player2"], 
      [4, 2, "Win for player1"], 
      [2, 4, "Win for player2"], 
      
      [4, 3, "Advantage player1"], 
      [3, 4, "Advantage player2"],
      
      [5, 4, "Advantage player1"], 
      [4, 5, "Advantage player2"], 
      [15, 14, "Advantage player1"], 
      [14, 15, "Advantage player2"], 
      
      
      [6, 4, "Win for player1"], 
      [4, 6, "Win for player2"], 
      [16, 14, "Win for player1"], 
      [14, 16, "Win for player2"] 
                
  ];  
  
    
   function checkScore(pointPlayer1,pointPlayer2) {
      var game = new TennisGame("player1","player2");  
      updateScore(game,"player1", pointPlayer1);
      updateScore(game,"player2", pointPlayer2);
      
      return game.getScore();
      
   }
   
   function updateScore(game,name,point) {
       for(var i=0; i<point; i++) {
           game.wonPoint(name);
       }
       
      
   }
   
   tests.forEach(function(test) {
    it(test[0] + ':' + test[1] + '-> ' + test[2], function() {
      var result = checkScore(test[0], test[1]);
      assert.equal(result, test[2]);
    });
  });
  
});