There's an issue here. You're calling `set_won` every time a player scores. One of your tests reads like this:
```ruby
player.games = 5
player.opponent.games = 0
player.score

expect(player.sets).to eq(1)
```
In this case, the `Player` is winning 5-0. If he scores the next ball, the current score should be 15-0 in the 6th game, not winning a set.
You can solve this by calling `set_won` inside the `game_won` method. Same goes for calling `match_won` inside the `set_won` method.