diff --git a/Sources/bowlin_project/lib/model/LastRound.dart b/Sources/bowlin_project/lib/model/LastRound.dart index 45994e3..5448035 100644 --- a/Sources/bowlin_project/lib/model/LastRound.dart +++ b/Sources/bowlin_project/lib/model/LastRound.dart @@ -101,12 +101,12 @@ class LastRound extends AbstractRound { return 10; } else if (firstThrow == 10 && secondThrow == null) { return 10; - } else if (secondThrow == null) { - return 10 - (firstThrow ?? 0); - } else if (secondThrow == 10) { + } else if ( secondThrow == null ){ + return 10 - ( firstThrow ?? 0 ); + } else if ( ( firstThrow ?? 0 ) + ( secondThrow ?? 0 ) == 10 || secondThrow == 10 ){ return 10; } else { - return 10 - (secondThrow ?? 0); + return 10 - ( secondThrow ?? 0 ); } } } diff --git a/Sources/bowlin_project/lib/model/Stat.dart b/Sources/bowlin_project/lib/model/Stat.dart index 435c421..434b0ff 100644 --- a/Sources/bowlin_project/lib/model/Stat.dart +++ b/Sources/bowlin_project/lib/model/Stat.dart @@ -2,14 +2,14 @@ import 'package:bowl_in/model/GameDetail.dart'; import 'package:bowl_in/model/Player.dart'; class Stat { - int _nbVictory; - int _nbGames; - int _highscore; - int _nbStrikes; - int _nbSpares; - int _nbScore; - double _avgScore; - double _avgPinsPerRound; + int _nbVictory = 0; + int _nbGames = 0; + int _highscore = 0; + int _nbStrikes = 0; + int _nbSpares = 0; + int _nbScore = 0; + double _avgScore = 0; + double _avgPinsPerRound = 0; // Constructor Stat( @@ -23,6 +23,9 @@ class Stat { this._avgPinsPerRound, ); + Stat.empty(); + + // Getters and setters int get nbVictory => _nbVictory; diff --git a/Sources/bowlin_project/test/round_test.dart b/Sources/bowlin_project/test/round_test.dart new file mode 100644 index 0000000..6d5abc6 --- /dev/null +++ b/Sources/bowlin_project/test/round_test.dart @@ -0,0 +1,80 @@ +import 'package:bowl_in/model/LastRound.dart'; +import 'package:bowl_in/model/Round.dart'; +import 'package:bowl_in/model/Stat.dart'; +import 'package:bowl_in/model/User.dart'; +import 'package:flutter_test/flutter_test.dart'; + + +void main() { + test("Test Round", (){ + User u = User(1, "Louison" , "Sources/bowlin_project/assets/images/image_user_pink.png", "loparant@gmail.com", [], [], Stat.empty()); + Round r = Round(null, null, null, u, 1); + + expect(r.getMaxPinsThisShot(), 10); + expect(r.isSpareOrStrike(), false); + + r.computeNext(4); + + expect(r.getMaxPinsThisShot(), 6); + r.computeNext(6); + + + expect(r.isSpare(), true); + expect(r.isSpareOrStrike(), true); + expect(r.isStrike(), false); + expect(r.getNbSpares(), 1); + expect(r.getNbStrike(), 0); + + Round r2 = Round(null, null, null, u, 2); + r2.computeNext(10); + expect(r2.isSpare(), false); + expect(r2.isStrike(), true); + expect(r2.isSpareOrStrike(), true); + expect(r2.getNbSpares(), 0); + expect(r2.getNbStrike(), 1); + + Round r3 = Round(null, null, null, u, 2); + r3.computeNext(2); + r3.computeNext(5); + expect(r3.getPinsKnockedDown(), 7); + }); + + test("Test LastRound", (){ + User u = User(1, "Louison" , "Sources/bowlin_project/assets/images/image_user_pink.png", "loparant@gmail.com", [], [], Stat.empty()); + LastRound r = LastRound(null, null, null, u, 1, null); + + expect(r.getMaxPinsThisShot(), 10); + expect(r.isSpareOrStrike(), false); + r.computeNext(10); + + expect(r.getMaxPinsThisShot(), 10); + r.computeNext(10); + + expect(r.getMaxPinsThisShot(), 10); + r.computeNext(10); + + expect(r.getPinsKnockedDown(), 30); + expect(r.getNbSpares(), 0); + expect(r.getNbStrike(), 3); + + LastRound r2 = LastRound(null, null, null, u, 1, null); + r2.computeNext(1); + expect(r2.getMaxPinsThisShot(), 9); + r2.computeNext(9); + expect(r2.getMaxPinsThisShot(), 10); + r2.computeNext(10); + expect(r2.getPinsKnockedDown(), 20); + expect(r2.getNbSpares(), 1); + expect(r2.getNbStrike(), 1); + + LastRound r3 = LastRound(null, null, null, u, 1, null); + r3.computeNext(10); + r3.computeNext(2); + expect(r3.getMaxPinsThisShot(), 8); + r3.computeNext(8); + expect(r3.getPinsKnockedDown(), 20); + expect(r3.getNbSpares(), 1); + expect(r3.getNbStrike(), 1); + + }); +} \ No newline at end of file