Stats implements GazeMotionListener { public int getShotRatio() { if (this.nbGoalsToReach == this.nbGoalsReached || this.nbGoalsToReach == 0) { return 100; } else { return (int) ((float) this.nbGoalsReached / (float) this.nbGoalsToReach * 100.0); } } Stats(final Scene gameContextScene);  Stats(final Scene gameContextScene, final String gameName); ArrayList<TargetAOI> getTargetAOIList(); void setTargetAOIList(final ArrayList<TargetAOI> targetAOIList); void notifyNewRoundReady(); void notifyNextRound(); void startVideoRecording(); void endVideoRecording(); void start(); List<CoordinatesTracker> getMovementHistoryWithTime(); void reset(); void stop(); @Override void gazeMoved(final javafx.geometry.Point2D position); Graphics initGazeMetricsImage(BufferedImage bImage, BufferedImage screenshotImage); SavedStatsInfo saveStats(); long computeRoundsDurationAverageDuration(); long getStartTime(); long computeRoundsDurationMedianDuration(); long getRoundsTotalAdditiveDuration(); long computeTotalElapsedDuration(); double computeRoundsDurationVariance(); double computeRoundsDurationStandardDeviation(); void incrementNumberOfGoalsToReach(); void incrementNumberOfGoalsToReach(int i); void incrementNumberOfGoalsReached(); void addRoundDuration(); int getShotRatio(); List<Long> getSortedDurationsBetweenGoals(); List<Long> getOriginalDurationsBetweenGoals(); String getDirectoryOfVideo(); void takeScreenShot(); final Scene gameContextScene; @Getter
    public int nbGoalsReached; }
@Test void shouldGetDefaultShotRatio() { int result = stats.getShotRatio(); assertEquals(100, result); }