package de.saring.exerciseviewer.parser.impl; import de.saring.exerciseviewer.core.EVException; import de.saring.exerciseviewer.data.EVExercise; import de.saring.exerciseviewer.parser.AbstractExerciseParser; import org.junit.Before; import org.junit.Test; import java.time.LocalDateTime; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; /** * This class contains all unit tests for the PolarF6RawParser class. * <p/> * Based on the PolarSRawParserTest by Stefan Saring. * * @author Roland Hostettler */ public class PolarF6RawParserTest { /** * Instance to be tested. */ private AbstractExerciseParser parser; /** * This method initializes the environment for testing. */ @Before public void setUp() throws Exception { parser = new PolarF6RawParser(); } /** * This method must fail on parsing an exerise file which doesn't exists. */ @Test public void testParseExerciseMissingFile() { try { parser.parseExercise("missing-file.frd"); fail("Parse of the missing file must fail ..."); } catch (EVException e) { } } /** * This method tests the parser with a Polar F6 raw exercise file. */ @Test public void testParseF6() throws EVException { // parse exercise file EVExercise exercise = parser.parseExercise("misc/testdata/f6-test.frd"); // check exercise data assertEquals(exercise.getFileType(), EVExercise.ExerciseFileType.F6RAW); assertEquals("Polar F Series", exercise.getDeviceName()); assertEquals(LocalDateTime.of(2007, 10, 28, 11, 7, 34), exercise.getDateTime()); assertEquals("0", exercise.getType()); assertEquals(false, exercise.getRecordingMode().isAltitude()); assertEquals(false, exercise.getRecordingMode().isSpeed()); assertEquals(false, exercise.getRecordingMode().isCadence()); assertEquals(false, exercise.getRecordingMode().isPower()); assertEquals((byte) 0, exercise.getRecordingMode().getBikeNumber()); assertEquals((40 * 60 * 10) + 26 * 10, exercise.getDuration()); assertEquals((short) 0, exercise.getRecordingInterval()); assertEquals((short) 169, exercise.getHeartRateAVG()); assertEquals((short) 178, exercise.getHeartRateMax()); assertEquals(null, exercise.getSpeed()); assertEquals(null, exercise.getCadence()); assertEquals(null, exercise.getAltitude()); assertEquals(null, exercise.getTemperature()); assertEquals(595, exercise.getEnergy()); assertEquals(54377, exercise.getEnergyTotal()); assertEquals((65 * 60) + 9, exercise.getSumExerciseTime()); assertEquals(0, exercise.getSumRideTime()); assertEquals(0, exercise.getOdometer()); // check heart rate limits assertEquals(4, exercise.getHeartRateLimits().length);//-- assertEquals((short) 158, exercise.getHeartRateLimits()[0].getLowerHeartRate()); assertEquals((short) 176, exercise.getHeartRateLimits()[0].getUpperHeartRate()); assertEquals(true, exercise.getHeartRateLimits()[0].isAbsoluteRange()); assertEquals(0, exercise.getHeartRateLimits()[0].getTimeBelow()); assertEquals((36 * 60) + 13, exercise.getHeartRateLimits()[0].getTimeWithin()); assertEquals(0, exercise.getHeartRateLimits()[0].getTimeAbove()); assertEquals((short) 60, exercise.getHeartRateLimits()[1].getLowerHeartRate()); assertEquals((short) 70, exercise.getHeartRateLimits()[1].getUpperHeartRate()); assertEquals(false, exercise.getHeartRateLimits()[1].isAbsoluteRange()); assertEquals(0, exercise.getHeartRateLimits()[1].getTimeBelow()); assertEquals(40, exercise.getHeartRateLimits()[1].getTimeWithin()); assertEquals(0, exercise.getHeartRateLimits()[1].getTimeAbove()); assertEquals((short) 71, exercise.getHeartRateLimits()[2].getLowerHeartRate()); assertEquals((short) 80, exercise.getHeartRateLimits()[2].getUpperHeartRate()); assertEquals(false, exercise.getHeartRateLimits()[2].isAbsoluteRange()); assertEquals(0, exercise.getHeartRateLimits()[2].getTimeBelow()); assertEquals((1 * 60) + 49, exercise.getHeartRateLimits()[2].getTimeWithin()); assertEquals(0, exercise.getHeartRateLimits()[2].getTimeAbove()); assertEquals((short) 81, exercise.getHeartRateLimits()[3].getLowerHeartRate()); assertEquals((short) 90, exercise.getHeartRateLimits()[3].getUpperHeartRate()); assertEquals(false, exercise.getHeartRateLimits()[3].isAbsoluteRange()); assertEquals(0, exercise.getHeartRateLimits()[3].getTimeBelow()); assertEquals((37 * 60) + 57, exercise.getHeartRateLimits()[3].getTimeWithin()); assertEquals(0, exercise.getHeartRateLimits()[3].getTimeAbove()); // check lap data assertEquals(exercise.getLapList().length, 0); // check sample data assertEquals(exercise.getSampleList().length, 0); } }