|
| 1 | +library(tcxr) |
| 2 | +library(XML) |
| 3 | +library(testthat) |
| 4 | + |
| 5 | +# TCX test files |
| 6 | +# Reference: I. Jr. Fister, S. Rauter, D. Fister, I. Fister. A collection of sport activity datasets with an emphasis on powermeter data. Technical report, University of Maribor, 2017. |
| 7 | +# More info: https://github.com/firefly-cpp/tcx-test-files |
| 8 | + |
| 9 | +sample_tcx_file <- testthat::test_path("test_files", "2.tcx") |
| 10 | + |
| 11 | +test_that("TCXRead returns expected values for 2.tcx file", { |
| 12 | + result <- TCXRead(sample_tcx_file) |
| 13 | + |
| 14 | + expected_distance <- 24732.34 |
| 15 | + expected_time <- 3876.0 |
| 16 | + expected_calories <- 924 |
| 17 | + expected_max_altitude <- 78.5999984741211 |
| 18 | + expected_total_ascent <- 452.5999946594238 |
| 19 | + expected_total_descent <- 414.9999942779541 |
| 20 | + expected_avg_speed <- 22.97121362229102 |
| 21 | + expected_max_speed <- 52.5 |
| 22 | + expected_max_hr <- 182 |
| 23 | + expected_avg_hr <- 167.4795994065282 |
| 24 | + |
| 25 | + expect_type(result, "list") |
| 26 | + expect_true("summary" %in% names(result)) |
| 27 | + expect_true("raw_data" %in% names(result)) |
| 28 | + |
| 29 | + expect_equal(result$summary$total_distance_meters, expected_distance, tolerance = 0.01) |
| 30 | + expect_equal(result$summary$total_time_seconds, expected_time, tolerance = 0.01) |
| 31 | + expect_equal(result$summary$total_calories, expected_calories, tolerance = 0.01) |
| 32 | + expect_equal(result$summary$max_altitude, expected_max_altitude, tolerance = 0.01) |
| 33 | + expect_equal(result$summary$total_ascent, expected_total_ascent, tolerance = 0.01) |
| 34 | + expect_equal(result$summary$total_descent, expected_total_descent, tolerance = 0.01) |
| 35 | + expect_equal(result$summary$average_speed_kmh, expected_avg_speed, tolerance = 0.01) |
| 36 | + expect_equal(result$summary$max_speed_kmh, expected_max_speed, tolerance = 0.01) |
| 37 | + |
| 38 | + expect_true(is.na(result$summary$max_watts)) |
| 39 | + expect_true(is.na(result$summary$max_cadence)) |
| 40 | + expect_true(is.na(result$summary$average_cadence)) |
| 41 | + |
| 42 | + expect_equal(result$summary$max_hr, expected_max_hr, tolerance = 0.01) |
| 43 | + expect_equal(result$summary$average_hr, expected_avg_hr, tolerance = 0.01) |
| 44 | + |
| 45 | + expect_s3_class(result$raw_data, "data.frame") |
| 46 | + expect_true(nrow(result$raw_data) > 0) |
| 47 | +}) |
0 commit comments