tests/testthat/test-tf_parse.R

test_that("tf_parse heat sheet - no results", {

  skip_on_cran()

  file <- "http://tfresultsdata.deltatiming.com/2018-hurricane-invitational/180316F028.htm"

  expect_message(out <- file %>%
    read_results() %>%
    tf_parse(), "No results found in file")

  expect_equivalent(out, data.frame())

})

test_that("long jump with prelims/finals on the same page, missing wind and X instead of FOUL", {

  skip_on_cran()

  file <- "http://tfresultsdata.deltatiming.com/2019-sun-belt-outdoor-championships/190510F029.htm"

  df_test <- file %>%
    read_results() %>%
    tf_parse(
      relay_athletes = TRUE,
      rounds = TRUE,
      round_attempts = TRUE,
      split_attempts = TRUE,
      splits = TRUE
    )

  df_standard <-
    structure(list(Place = c("1", "2", "3", "4", "5", "6", "7", "8",
                             "9", "10", "11", "12", "13", "14", "15", "1", "2", "3", "4",
                             "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", NA), Bib_Number = c("73",
                                                                                                        "163", "76", "231", "309", "299", "214", "377", "288", "164",
                                                                                                        "107", "171", "352", "380", "276", "241", "248", "207", "92",
                                                                                                        "87", "351", "200", "186", "194", "262", "360", "333", "190",
                                                                                                        "110", "128"), Name = c("Erewele, Osereme", "Lodge, Detrich",
                                                                                                                                "Givens, Johnaya", "Vaikla, Hanna-Mai", "Cowans, Kaprecia", "Trawick, Brittany",
                                                                                                                                "Griffin, Elysa", "Matthews, Chante", "Middlebrooks, JaM", "Lynch, Meagan",
                                                                                                                                "Allen, Bria", "Seymour, Jakeeyah", "Simpson, Payton", "Obikudu, Chineme",
                                                                                                                                "Gordon, Amber", "Ferdinand, Naomi", "Hilton, Live", "Berge, Emilie",
                                                                                                                                "Nwofor, Emma", "Mack, Arabriaun", "Scott-Kilgo, Jasm", "Shaw, Alexus",
                                                                                                                                "Harrison, Ra'Bree", "Moore, Na'ilah", "Smith, Kylah", "Billingsley, Imun",
                                                                                                                                "Dendy, Micaiah", "Hunt, Jaeda", "Edison, Nicole", "Briggs, Kelsey"
                                                                                                        ), Age = c("FR", "SR", "FR", "SO", "FR", "FR", "JR", "SO", "JR",
                                                                                                                   "FR", "FR", "FR", "SR", "SR", "FR", "JR", "FR", "JR", "JR", "JR",
                                                                                                                   "FR", "SR", "JR", "FR", "SR", "SO", "JR", "FR", "JR", "JR"),
                   Team = c("Arkansas State", "Georgia Southern", "Arkansas State",
                            "South Alabama", "UL-Lafayette", "Troy", "South Alabama",
                            "UT-Arlington", "Troy", "Georgia Southern", "Arkansas-Lit",
                            "Georgia Southern", "UL-Monroe", "UT-Arlington", "Troy",
                            "Texas State", "Texas State", "South Alabama", "Arkansas State",
                            "Arkansas State", "UL-Monroe", "Georgia State", "Georgia State",
                            "Georgia State", "Texas State", "UT-Arlington", "UL-Monroe",
                            "Georgia State", "Arkansas-Lit", "Coastal Carolina"), Finals_Result = c("5.85m",
                                                                                                    "5.64m", "5.62m", "5.47m", "5.43m", "5.42m", "5.32m", "5.31m",
                                                                                                    "5.24m", "5.18m", "5.03m", "4.96m", "4.95m", "4.92m", "4.61m",
                                                                                                    "6.11m", "6.06m", "5.92m", "5.88m", "5.88m", "5.86m", "5.71m",
                                                                                                    "5.61m", "5.56m", "5.56m", "5.53m", "5.50m", "5.49m", "5.32m",
                                                                                                    "FOUL"), Wind_Speed = c("0.6", "+0.0", "1.8", "0.2", "0.3",
                                                                                                                            "1.6", "1.2", "1.4", "1.2", "1.3", "1.1", "+0.0", "+0.0",
                                                                                                                            "+0.0", "0.1", "0.6", "+0.0", "1.8", "+0.0", "+0.0", "+0.0",
                                                                                                                            "+0.0", "+0.0", "+0.0", "+0.0", "0.1", "+0.0", "0.2", "0.2",
                                                                                                                            NA), DQ = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                                                                                                                        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1), Event = c("Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump", "Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump", "Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump", "Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump", "Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump", "Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump", "Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump", "Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump", "Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump", "Women Long Jump",
                                                                                                                                                                                                "Women Long Jump", "Women Long Jump"), Round_1 = c("X", "5.41m",
                                                                                                                                                                                                                                                   "5.62m", "X", "5.41m", "X", "5.12m", "5.27m", "5.00m", "5.18m",
                                                                                                                                                                                                                                                   "5.03m", "X", "4.82m", "4.92m", "X", "5.78m", "5.77m", "5.59m",
                                                                                                                                                                                                                                                   "5.70m", "5.59m", "5.53m", "5.53m", "5.30m", "X", "5.24m",
                                                                                                                                                                                                                                                   "5.53m", "X", "5.37m", "5.30m", "X"), Round_1_Wind = c(NA,
                                                                                                                                                                                                                                                                                                          "0.3", "1.8", NA, "1.9", NA, "+0.0", "0.9", "+0.0", "1.3",
                                                                                                                                                                                                                                                                                                          "1.1", NA, "+0.0", "+0.0", NA, "0.1", "+0.0", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                          "0.8", "+0.0", "-0.6", "+0.0", NA, "+0.0", "0.1", NA, "0.3",
                                                                                                                                                                                                                                                                                                          "+0.0", NA), Round_2 = c("5.79m", "5.64m", "5.36m", "X",
                                                                                                                                                                                                                                                                                                                                   "5.42m", "X", "5.32m", "5.31m", "X", "5.13m", "5.00m", "X",
                                                                                                                                                                                                                                                                                                                                   "4.95m", "4.71m", "4.61m", "X", "5.80m", "5.47m", "5.77m",
                                                                                                                                                                                                                                                                                                                                   "5.13m", "5.51m", "5.63m", "5.29m", "5.50m", "5.35m", "5.31m",
                                                                                                                                                                                                                                                                                                                                   "5.50m", "5.32m", "5.15m", "X"), Round_2_Wind = c("0.8",
                                                                                                                                                                                                                                                                                                                                                                                     "+0.0", "0.1", NA, "1.1", NA, "1.2", "1.4", NA, "1.4", "0.7",
                                                                                                                                                                                                                                                                                                                                                                                     NA, "1.2", "+0.0", "0.1", NA, "0.1", "0.9", "0.3", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                     "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                     "+0.0", NA), Round_3 = c("X", "X", "5.56m", "5.47m", "5.43m",
                                                                                                                                                                                                                                                                                                                                                                                                              "5.42m", "X", "5.16m", "5.24m", "X", "5.03m", "4.96m", "4.95m",
                                                                                                                                                                                                                                                                                                                                                                                                              "4.89m", "X", "5.77m", "6.06m", "X", "X", "5.88m", "5.77m",
                                                                                                                                                                                                                                                                                                                                                                                                              "5.71m", "5.61m", "5.56m", "5.56m", "X", "5.47m", "5.49m",
                                                                                                                                                                                                                                                                                                                                                                                                              "5.32m", "X"), Round_3_Wind = c(NA, NA, "1.9", "0.2", "0.3",
                                                                                                                                                                                                                                                                                                                                                                                                                                              "1.6", NA, "+0.0", "1.2", NA, "0.8", "+0.0", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                              NA, "0.3", "+0.0", NA, NA, "+0.0", "+0.0", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                              "+0.0", "+0.0", NA, "+0.0", "0.2", "0.2", NA), Round_4 = c("5.85m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         "X", "5.38m", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         NA, "5.81m", "5.76m", "5.80m", "5.86m", "X", "5.70m", "5.60m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         NA, NA, NA, NA, NA, NA, NA, NA), Round_4_Wind = c("0.6",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           NA, "+0.0", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           "0.3", "0.9", "0.9", "0.7", NA, "+0.0", "1.0", NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           NA, NA, NA, NA, NA), Round_5 = c("X", "5.47m", "X", NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "X", "X", "5.83m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "5.88m", "5.55m", "X", "5.58m", NA, NA, NA, NA, NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            NA), Round_5_Wind = c(NA, "+0.0", NA, NA, NA, NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  NA, NA, NA, NA, NA, NA, NA, NA, NA, "1.1", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  NA, "0.3", NA, NA, NA, NA, NA, NA, NA, NA), Round_6 = c("X",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          "X", "5.56m", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          NA, "6.11m", "5.72m", "5.92m", "5.87m", "X", "5.86m", "X",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          NA, NA, NA, NA, NA, NA, NA, NA), Round_6_Wind = c(NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "0.3", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, "0.6",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "+0.0", "1.8", "1.4", NA, "+0.0", NA, NA, NA, NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            NA, NA, NA)), row.names = c(NA, -30L), class = "data.frame")

  expect_equivalent(df_test, df_standard)

})

test_that("triple jump with attempts_split and split_attempts", {

  skip_on_cran()

  file <- "http://tfresultsdata.deltatiming.com/2019-ysu-icebreaker/191206F031.htm"

  df_test <- file %>%
    read_results() %>%
    tf_parse(
      relay_athletes = TRUE,
      rounds = TRUE,
      round_attempts = TRUE,
      split_attempts = TRUE,
      splits = TRUE
    )

  df_standard <-
    structure(list(Place = c("1", "2", "3", "4", "5", "6", "7", "8",
                             "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
                             "20", NA, NA), Name = c("Raqib, Nisa", "Britt, Kaylah", "Austin, Nikeela",
                                                     "Taub, Shannon", "Lewis, Aaliyah", "Phoennik, Courtney", "Seto, Maris",
                                                     "McQueeney, Hope", "Holmberg, Gabby", "DeLuca, Maria", "Horrell, Rachel",
                                                     "Billone, Caroline", "Streeter, Quintasia", "Adams, Katlyn",
                                                     "Ketterman, Stefanie", "Latoza, Kayla", "Hershberger, Faith",
                                                     "Collins, Abbey", "Lodge, Emily", "Douglas, Jill", "Wagner, Alexis",
                                                     "Swartzbaugh, Lydia"), Age = c("SO", "FR", "SR", "SR", "SO",
                                                                                    "JR", "SR", "FR", "JR", "JR", "SO", "JR", "FR", "SR", "SO", "SO",
                                                                                    "FR", "SO", "FR", "SO", "JR", "SR"), Team = c("Buffalo", "Buffalo",
                                                                                                                                  "Indiana (Pa.)", "Unattached", "California (Pa.)", "John Carroll",
                                                                                                                                  "Duquesne", "Clarion", "Duquesne", "John Carroll", "Indiana (Pa.)",
                                                                                                                                  "Duquesne", "California (Pa.)", "Grove City", "Indiana (Pa.)",
                                                                                                                                  "California (Pa.)", "Indiana (Pa.)", "Grove City", "Clarion",
                                                                                                                                  "Westminster (Pa.)", "California (Pa.)", "Geneva"), Finals_Result = c("12.77m",
                                                                                                                                                                                                        "12.02m", "11.79m", "11.39m", "11.17m", "11.15m", "11.12m", "11.09m",
                                                                                                                                                                                                        "11.06m", "11.01m", "10.93m", "10.90m", "10.82m", "10.53m", "10.17m",
                                                                                                                                                                                                        "10.13m", "10.02m", "9.75m", "9.13m", "8.97m", "FOUL", "FOUL"
                                                                                                                                  ), DQ = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                                                                                                                            0, 0, 0, 1, 1), Event = c("Women Triple Jump", "Women Triple Jump",
                                                                                                                                                                      "Women Triple Jump", "Women Triple Jump", "Women Triple Jump",
                                                                                                                                                                      "Women Triple Jump", "Women Triple Jump", "Women Triple Jump",
                                                                                                                                                                      "Women Triple Jump", "Women Triple Jump", "Women Triple Jump",
                                                                                                                                                                      "Women Triple Jump", "Women Triple Jump", "Women Triple Jump",
                                                                                                                                                                      "Women Triple Jump", "Women Triple Jump", "Women Triple Jump",
                                                                                                                                                                      "Women Triple Jump", "Women Triple Jump", "Women Triple Jump",
                                                                                                                                                                      "Women Triple Jump", "Women Triple Jump"), Round_1 = c("12.33m",
                                                                                                                                                                                                                             "11.02m", "11.46m", "11.39m", "11.04m", "10.89m", "X", "11.09m",
                                                                                                                                                                                                                             "X", "10.75m", "X", "10.79m", "X", "10.35m", "10.17m", "X", "10.02m",
                                                                                                                                                                                                                             "9.75m", "9.13m", "8.97m", "X", "X"), Round_2 = c("12.36m", "X",
                                                                                                                                                                                                                                                                               "11.44m", "-", "11.07m", "11.04m", "X", "10.66m", "11.06m", "ND",
                                                                                                                                                                                                                                                                               "10.93m", "10.90m", "10.47m", "10.53m", "ND", "10.13m", "ND",
                                                                                                                                                                                                                                                                               "ND", "ND", "ND", "X", "X"), Round_3 = c("12.38m", "X", "11.26m",
                                                                                                                                                                                                                                                                                                                        "-", "X", "10.86m", "11.06m", "ND", "X", "11.01m", "10.65m",
                                                                                                                                                                                                                                                                                                                        "10.81m", "10.82m", "10.43m", "X", "X", "ND", "X", "ND", "ND",
                                                                                                                                                                                                                                                                                                                        "X", "X"), Round_4 = c("12.13m", "X", "11.72m", "-", "X", "11.13m",
                                                                                                                                                                                                                                                                                                                                               "X", "10.82m", "-", NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                               NA, NA), Round_5 = c("12.77m", "12.02m", "11.79m", "-", "11.13m",
                                                                                                                                                                                                                                                                                                                                                                    "10.76m", "X", "10.71m", "-", NA, NA, NA, NA, NA, NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                    NA, NA, NA, NA, NA), Round_6 = c("12.27m", "X", "11.77m", "-",
                                                                                                                                                                                                                                                                                                                                                                                                     "11.17m", "11.15m", "11.12m", "10.87m", "-", NA, NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                     NA, NA, NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA, -22L), class = "data.frame")
  expect_equivalent(df_test, df_standard)



})

test_that("tf_parse_round_attempts", {

  file <-
    system.file("extdata",
                "Results-IVP-Track-Field-Championship-2019-20-v2.pdf",
                package = "JumpeR")

  raw_results <- read_results(file)

  df <-
    tf_parse(
      raw_results,
      rounds = TRUE,
      round_attempts = TRUE,
      relay_athletes = TRUE
    )

  total_O_round_1 <-
    sum(df$Round_1_Attempts == "O", na.rm = TRUE) # should be 17

  expect_equal(total_O_round_1, 17)
})

test_that("tf_parse mapping hytek", {

  skip_on_cran()

  links <-
    c(
      "http://tfresultsdata.deltatiming.com/2019-ysu-icebreaker/191206F022.htm",
      "http://tfresultsdata.deltatiming.com/2019-ysu-icebreaker/191206F036.htm",
      "http://tfresultsdata.deltatiming.com/2019-ysu-icebreaker/191206F035.htm"
    )

  df_test <- links %>%
    map(read_results) %>%
    map(tf_parse) %>%
    map(head, 3) %>%
    bind_rows()

  df_standard <-
    structure(list(Place = c("1", "2", "3", "1", "2", "3", "1", "2",
                             "3"), Team = c("Pittsburgh", "Pittsburgh", "Kent State", "Buffalo",
                                            "Youngstown St.", "Walsh", "Buffalo", "Pittsburgh", "Pittsburgh"
                             ), Finals_Result = c("3:16.26", "3:21.54", "3:21.77", "18.91m",
                                                  "17.95m", "17.57m", "17.41m", "16.47m", "16.27m"), DQ = c(0,
                                                                                                            0, 0, 0, 0, 0, 0, 0, 0), Event = c("Men 4x400 Meter Relay", "Men 4x400 Meter Relay",
                                                                                                                                               "Men 4x400 Meter Relay", "Men Weight Throw", "Men Weight Throw",
                                                                                                                                               "Men Weight Throw", "Women Weight Throw", "Women Weight Throw",
                                                                                                                                               "Women Weight Throw"), Name = c(NA, NA, NA, "Wray, Samuel", "Gutzky, Ben",
                                                                                                                                                                               "Ott, Jacob", "Hoyte, Asia", "Mallett, Shannah", "Gyles, Antoinette"
                                                                                                                                               ), Age = c(NA, NA, NA, "SR", "SR", "SO", "JR", "FR", "JR")), row.names = c(NA,
                                                                                                                                                                                                                          -9L), class = "data.frame")


  expect_equivalent(df_test, df_standard)
})

test_that("tf_parse safely mapping hytek", {

  skip_on_cran()

  links <-
    c(
      "http://tfresultsdata.deltatiming.com/2019-ysu-icebreaker/191206F022.htm",
      "http://tfresultsdata.deltatiming.com/2019-ysu-icebreaker/191206F036.htm",
      "http://tfresultsdata.deltatiming.com/2019-ysu-icebreaker/191206F035.htm"
    )

  df_test <- links %>%
    map(read_results) %>%
    map(
      purrr::safely(tf_parse, otherwise = NA),
      relay_athletes = TRUE,
      rounds = TRUE,
      round_attempts = TRUE,
      split_attempts = TRUE,
      splits = TRUE
    ) %>%
    SwimmeR::discard_errors() %>%
    map(head, 3) %>%
    bind_rows()

  df_standard <-
    structure(list(Place = c("1", "2", "3", "1", "2", "3", "1", "2",
                             "3"), Team = c("Pittsburgh", "Pittsburgh", "Kent State", "Buffalo",
                                            "Youngstown St.", "Walsh", "Buffalo", "Pittsburgh", "Pittsburgh"
                             ), Finals_Result = c("3:16.26", "3:21.54", "3:21.77", "18.91m",
                                                  "17.95m", "17.57m", "17.41m", "16.47m", "16.27m"), DQ = c(0,
                                                                                                            0, 0, 0, 0, 0, 0, 0, 0), Event = c("Men 4x400 Meter Relay", "Men 4x400 Meter Relay",
                                                                                                                                               "Men 4x400 Meter Relay", "Men Weight Throw", "Men Weight Throw",
                                                                                                                                               "Men Weight Throw", "Women Weight Throw", "Women Weight Throw",
                                                                                                                                               "Women Weight Throw"), Name = c(NA, NA, NA, "Wray, Samuel", "Gutzky, Ben",
                                                                                                                                                                               "Ott, Jacob", "Hoyte, Asia", "Mallett, Shannah", "Gyles, Antoinette"
                                                                                                                                               ), Age = c(NA, NA, NA, "SR", "SR", "SO", "JR", "FR", "JR"), Round_1 = c(NA,
                                                                                                                                                                                                                       NA, NA, "17.01m", "ND", "17.57m", "ND", "16.47m", "15.36m"),
                   Round_2 = c(NA, NA, NA, "18.06m", "17.43m", "ND", "ND", "16.12m",
                               "16.27m"), Round_3 = c(NA, NA, NA, "ND", "17.59m", "15.98m",
                                                      "14.71m", "16.42m", "ND"), Round_4 = c(NA, NA, NA, "18.91m",
                                                                                             "17.39m", "ND", "17.41m", "16.31m", "ND"), Round_5 = c(NA,
                                                                                                                                                    NA, NA, "18.33m", "17.68m", "17.29m", "15.01m", "15.17m",
                                                                                                                                                    "ND"), Round_6 = c(NA, NA, NA, "18.86m", "17.95m", "ND",
                                                                                                                                                                       "ND", "15.37m", "15.68m")), row.names = c(NA, -9L), class = "data.frame")

  expect_equivalent(df_test, df_standard)
})

test_that("tf_parse_rounds", {
  file <-
    system.file("extdata", "underdistance-2020-result.pdf", package = "JumpeR")

  raw_results <- read_results(file)

  df <-
    tf_parse(
      raw_results,
      rounds = TRUE,
      round_attempts = TRUE,
      relay_athletes = TRUE
    )

  total_FOUL_round_1 <-
    sum(df$Round_1 == "FOUL", na.rm = TRUE) # should be 8
  total_FOUL_round_2 <-
    sum(df$Round_2 == "FOUL", na.rm = TRUE) # should be 9
  total_FOUL_round_3 <-
    sum(df$Round_3 == "FOUL", na.rm = TRUE) # should be 6
  total_FOUL_round_4 <-
    sum(df$Round_4 == "FOUL", na.rm = TRUE) # should be 10
  total_FOUL_round_5 <-
    sum(df$Round_5 == "FOUL", na.rm = TRUE) # should be 11
  total_FOUL_round_6 <-
    sum(df$Round_6 == "FOUL", na.rm = TRUE) # should be 9

  FOUL_list <-
    c(
      total_FOUL_round_1,
      total_FOUL_round_2,
      total_FOUL_round_3,
      total_FOUL_round_4,
      total_FOUL_round_5,
      total_FOUL_round_6
    )

  expect_equal(FOUL_list, c(8, 9, 6, 10, 11, 9))
})


test_that("tf_parse_standard", {

  skip_on_cran() # due to time, risk of external resources failing

  # import standard
  df_standard <- readRDS(system.file("extdata", "df_standard.rds", package = "JumpeR"))

  # import test files
  file_1 <-
     system.file("extdata", "Results-IVP-Track-Field-Championship-2019-20-v2.pdf", package = "JumpeR") # good
  file_2 <- system.file("extdata", "underdistance-2020-result.pdf", package = "JumpeR") # good
  file_3 <-
    system.file("extdata", "SMTFA-2019-Full-Results.pdf", package = "JumpeR") # good
  file_4 <-
    system.file("extdata", "sa-performance-trial-1-day-1-results.pdf", package = "JumpeR") # good
  url_1 <- "http://results.yentiming.com/2019/Indoor/12-21-18-west.htm" # good
  # url_2 <- "http://leonetiming.com/2019/Indoor/GregPageRelays/Results.htm"

  # test external links
  # if(sum(sapply(c(url_1, url_2), is_link_broken)) > 0.9){
  raw_data <- try(read_results(url_1), silent = TRUE)

  if(any(grep("error", class(raw_data)))){
    skip("Link to external data is broken")
    suppressWarnings(closeAllConnections())
  } else {

  # list of sources
  sources <- c(file_1,
               file_2,
               file_3,
               file_4)
               # url_2)

  # helper function to apply read_results across list of links
  Read_Map <- function(links) {

    scrape_test_all <-
      purrr::map(links, read_results, node = "pre")

    names(scrape_test_all) <- links
    return(scrape_test_all)

  }

  # helper function to apply swim_parse across all files
  Parse_Map <- function(links) {

    all_results <-
      purrr::map(links, tf_parse)

    return(all_results)

  }

  # get test data to compare with standard
  suppressWarnings(df_test <- Read_Map(sources))
  suppressWarnings(df_test$url_1 <- raw_data)
  df_test <- Parse_Map(df_test)
  df_test <- dplyr::bind_rows(df_test, .id = "source") %>%
    dplyr::select(-source)

  # to regenerate df_standard if df_test is more correct
  # windows
  # readr::write_rds(df_test, "~/JumpeR/inst/extdata/df_standard.rds")
  # mac
  # readr::write_rds(df_test, "inst/extdata/df_standard.rds")
  # to compare results
  # df <- dplyr::anti_join(df_standard, df_test)

  # compare standard to test
  expect_equivalent(df_standard,
                    df_test)
  }
})

test_that("tf_parse_attempts_splits_works", {

  skip_on_cran() # due to risk of external resources failing

  url_2 <- "http://leonetiming.com/2019/Indoor/GregPageRelays/Results.htm"

  raw_data <- try(read_results(url_2), silent = TRUE)

  if(any(grep("error", class(raw_data)))){
    skip("Link to external data is broken")
    suppressWarnings(closeAllConnections())
  } else {


    df_standard_polevault_hytek <- readRDS(system.file("extdata", "df_standard_polevault_hytek.rds", package = "JumpeR"))

    df <-
      tf_parse(
        raw_data,
        rounds = TRUE,
        round_attempts = TRUE,
        split_attempts = TRUE
      )

  df_test <- df %>%
    dplyr::filter(Event == "Men Pole Vault")

  expect_equivalent(df_test, df_standard_polevault_hytek)

  # to regenerate df_standard if df_test is more correct
  # windows
  # readr::write_rds(df_test, "~/JumpeR/inst/extdata/df_standard_polevault_hytek.rds")
  # mac
  # readr::write_rds(df_test, "inst/extdata/df_standard_polevault_hytek.rds")
  # to compare results
  # df <- dplyr::anti_join(df_standard_polevault, df_test)

  }
})

test_that("tf_parse high jump with team scores", {
  skip_on_cran()

  file <-
    "http://tfresultsdata.deltatiming.com/2019-horizon-outdoor-championships/190503F026.htm"

  raw_results <- read_results(file)

  df_test <-
    tf_parse(
      raw_results,
      rounds = TRUE,
      round_attempts = TRUE,
      relay_athletes = TRUE
    )

  df_standard <-
    structure(
      list(
        Place = c("1", "2", "3", "4", "5", "6", "7", "8",
                  "9", "10"),
        Bib_Number = c(
          "410",
          "370",
          "413",
          "422",
          "463",
          "464",
          "314",
          "290",
          "355",
          "414"
        ),
        Name = c(
          "Alex Hugh-Plott",
          "Brady Irwin",
          "Salvatore Narusch",
          "Chase VanSickle",
          "Terron Taylor",
          "Daiquain Watson",
          "Bryan Keubeng",
          "Joseph Lietzow",
          "Trevor Coenen",
          "Marcus Nellum"
        ),
        Age = c("FR", "JR", "FR", "FR", "FR", "SO",
                "FR", "SO", "JR", "FR"),
        Team = c(
          "OAKLAND",
          "MILWAUKEE",
          "OAKLAND",
          "OAKLAND",
          "YOUNGSTOWN ST.",
          "YOUNGSTOWN ST.",
          "ILLINOIS-CHICAGO",
          "DETROIT MERCY",
          "MILWAUKEE",
          "OAKLAND"
        ),
        Prelims_Result = c(
          "2.03m",
          "2.01m",
          "1.95m",
          "2.00m",
          "2.03m",
          "1.87m",
          "1.90m",
          "1.80m",
          "1.96m",
          "1.80m"
        ),
        Finals_Result = c(
          "2.03m",
          "2.00m",
          "1.97m",
          "1.97m",
          "1.94m",
          "1.94m",
          "1.91m",
          "1.88m",
          "1.88m",
          "1.85m"
        ),
        DQ = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0),
        Event = c(
          "Men High Jump",
          "Men High Jump",
          "Men High Jump",
          "Men High Jump",
          "Men High Jump",
          "Men High Jump",
          "Men High Jump",
          "Men High Jump",
          "Men High Jump",
          "Men High Jump"
        ),
        Round_1 = c(
          "1.75",
          "1.75",
          "1.75",
          "1.75",
          "1.75",
          "1.75",
          "1.75",
          "1.75",
          "1.75",
          "1.75"
        ),
        Round_1_Attempts = c("-",
                             "-", "-", "-", "-", "O", "-", "O", "-", "O"),
        Round_10 = c("2.06",
                     NA, NA, NA, NA, NA, NA, NA, NA, NA),
        Round_10_Attempts = c("XXX",
                              NA, NA, NA, NA, NA, NA, NA, NA, NA),
        Round_2 = c(
          "1.80",
          "1.80",
          "1.80",
          "1.80",
          "1.80",
          "1.80",
          "1.80",
          "1.80",
          "1.80",
          "1.80"
        ),
        Round_2_Attempts = c("O", "-", "O", "O", "-", "O", "-", "O",
                             "O", "XO"),
        Round_3 = c(
          "1.85",
          "1.85",
          "1.85",
          "1.85",
          "1.85",
          "1.85",
          "1.85",
          "1.85",
          "1.85",
          "1.85"
        ),
        Round_3_Attempts = c("-",
                             "-", "-", "-", "O", "O", "O", "XXO", "O", "XXO"),
        Round_4 = c(
          "1.88",
          "1.88",
          "1.88",
          "1.88",
          "1.88",
          "1.88",
          "1.88",
          "1.88",
          "1.88",
          "1.88"
        ),
        Round_4_Attempts = c("O", "-", "O", "O", "-", "XO",
                             "-", "O", "XO", "XXX"),
        Round_5 = c(
          "1.91",
          "1.91",
          "1.91",
          "1.91",
          "1.91",
          "1.91",
          "1.91",
          "1.91",
          "1.91",
          NA
        ),
        Round_5_Attempts = c("-",
                             "O", "XO", "XO", "O", "XO", "O", "XXX", "XXX", NA),
        Round_6 = c(
          "1.94",
          "1.94",
          "1.94",
          "1.94",
          "1.94",
          "1.94",
          "1.94",
          NA,
          NA,
          NA
        ),
        Round_6_Attempts = c("XO", "XXO", "O", "XXO", "O", "O",
                             "XXX", NA, NA, NA),
        Round_7 = c("1.97", "1.97", "1.97",
                    "1.97", "1.97", "1.97", NA, NA, NA, NA),
        Round_7_Attempts = c("O",
                             "XXO", "XO", "XO", "XXX", "XXX", NA, NA, NA, NA),
        Round_8 = c("2.00",
                    "2.00", "2.00", "2.00", NA, NA, NA, NA, NA, NA),
        Round_8_Attempts = c("O",
                             "XXO", "XXX", "XXX", NA, NA, NA, NA, NA, NA),
        Round_9 = c("2.03",
                    "2.03", NA, NA, NA, NA, NA, NA, NA, NA),
        Round_9_Attempts = c("XO",
                             "XXX", NA, NA, NA, NA, NA, NA, NA, NA)
      ),
      row.names = c(NA,-10L),
      class = "data.frame"
    )

  expect_equivalent(df_test, df_standard)
})


test_that("tf_parse pass through", {

  skip_on_cran()


  #### Hept Shot Put ####

  file <- "https://www.flashresults.com/2021_Meets/Indoor/03-11_NCAA/033-3_compiledSeries.htm"

  df_test <- file %>%
    read_results() %>%
    tf_parse()


  df_standard <-
    structure(list(Place = c("1", "2", "3", "4", "5", "6", "7", "8",
                             "9", "10", "11", "12", "13", "14", "15", NA), Name = c("Karel TILGA",
                                                                                    "Max VOLLMER", "Kyle GARLAND", "Leo NEUGEBAUER", "Daniel SPEJCHER",
                                                                                    "Felix WOLTER", "Ayden OWENS", "Jacob SPOTSWOOD", "Alex SPYRIDONIDIS",
                                                                                    "Peyton HAACK", "Isaiah MARTIN", "Kristo SIMULASK", "Austin WEST",
                                                                                    "Etamar BHASTEKAR", "Denim ROGERS", "Markus BALLENGEE"), Event = c("Hept Shot Put",
                                                                                                                                                       "Hept Shot Put", "Hept Shot Put", "Hept Shot Put", "Hept Shot Put",
                                                                                                                                                       "Hept Shot Put", "Hept Shot Put", "Hept Shot Put", "Hept Shot Put",
                                                                                                                                                       "Hept Shot Put", "Hept Shot Put", "Hept Shot Put", "Hept Shot Put",
                                                                                                                                                       "Hept Shot Put", "Hept Shot Put", "Hept Shot Put"), Gender = c("Men",
                                                                                                                                                                                                                      "Men", "Men", "Men", "Men", "Men", "Men", "Men", "Men", "Men",
                                                                                                                                                                                                                      "Men", "Men", "Men", "Men", "Men", "Men"), Finals_Result = c("16.04m",
                                                                                                                                                                                                                                                                                   "15.82m", "15.41m", "14.95m", "14.86m", "14.13m", "14.07m", "13.58m",
                                                                                                                                                                                                                                                                                   "13.47m", "13.44m", "13.33m", "13.03m", "12.92m", "12.32m", "12.22m",
                                                                                                                                                                                                                                                                                   "DNS"), Event_Date = structure(c(18698, 18698, 18698, 18698,
                                                                                                                                                                                                                                                                                                                    18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698, 18698,
                                                                                                                                                                                                                                                                                                                    18698, 18698, 18698), class = "Date"), Team = c("Georgia", "Oregon",
                                                                                                                                                                                                                                                                                                                                                                    "Georgia", "Texas", "Arkansas", "Pittsburgh", "Michigan", "Alabama",
                                                                                                                                                                                                                                                                                                                                                                    "Auburn", "Iowa", "Purdue", "Oklahoma", "Iowa", "Arkansas", "Houston Baptist",
                                                                                                                                                                                                                                                                                                                                                                    "Arkansas"), Round_1 = c("15.52", "15.45", "14.95", "14.95",
                                                                                                                                                                                                                                                                                                                                                                                             "14.86", "12.97", "12.26", "13.01", "13.47", "X", "13.24", "13.03",
                                                                                                                                                                                                                                                                                                                                                                                             "12.92", "10.73", "12.22", "DNS"), Round_2 = c("14.86", "15.70",
                                                                                                                                                                                                                                                                                                                                                                                                                                            "15.41", "13.47", "14.73", "X", "12.93", "13.58", "13.19", "12.22",
                                                                                                                                                                                                                                                                                                                                                                                                                                            "13.11", "12.54", "X", "11.22", "12.19", NA), Round_3 = c("16.04",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "15.82", "13.94", "14.71", "X", "14.13", "14.07", "12.27", "13.11",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "13.44", "13.33", "X", "12.60", "12.32", "X", NA), Age = c("SO",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "SO", "SO", "SO", "SO", "SR", "SO", "JR", "JR", "JR", "JR", "JR",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "SO", "SR", "SR", "SR")), row.names = c(NA, -16L), class = "data.frame")
  expect_equivalent(df_test, df_standard)

  #### Long Jump ####

  file <-
    "https://www.flashresults.com/2019_Meets/Outdoor/06-05_NCAAOTF-Austin/015-1_compiled.htm"

  df_test <- file %>%
    read_results() %>%
    tf_parse()

  df_standard <-
    structure(list(Place = c("1", "2", "3", "4", "5", "6", "7", "8",
                             "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19",
                             "20", "21", NA, NA, NA), Name = c("JuVaughn HARRISON", "Trumaine JEFFERSON",
                                                               "Yann RANDRIANASOLO", "Justin HALL", "Jacob FINCHAM-DUKES", "Jamie BROWN",
                                                               "Kemonie BRIGGS", "Jordan LATIMER", "Odaine LEWIS", "Steffin MCCARTER",
                                                               "Chris MCBRIDE", "Grant HOLLOWAY", "Charles BROWN", "Carter SHELL",
                                                               "Samory FRAGA", "R'Lazon BRUMFIELD", "Allen GORDON", "Kenan JONES",
                                                               "Jullane WALKER", "DaJuan SEWARD", "Rayvon GREY", "Keshun MCGEE",
                                                               "Jalen SEALS", "Derrick MONROE"), Event = c("Long Jump", "Long Jump",
                                                                                                           "Long Jump", "Long Jump", "Long Jump", "Long Jump", "Long Jump",
                                                                                                           "Long Jump", "Long Jump", "Long Jump", "Long Jump", "Long Jump",
                                                                                                           "Long Jump", "Long Jump", "Long Jump", "Long Jump", "Long Jump",
                                                                                                           "Long Jump", "Long Jump", "Long Jump", "Long Jump", "Long Jump",
                                                                                                           "Long Jump", "Long Jump"), Gender = c("Men", "Men", "Men", "Men",
                                                                                                                                                 "Men", "Men", "Men", "Men", "Men", "Men", "Men", "Men", "Men",
                                                                                                                                                 "Men", "Men", "Men", "Men", "Men", "Men", "Men", "Men", "Men",
                                                                                                                                                 "Men", "Men"), Wind = c("+0.7", "+1.6", "+2.3", "+0.7", "+2.0",
                                                                                                                                                                         "+1.8", "+2.1", "+3.2", "+2.1", "+1.3", "+1.0", "+1.3", "+3.1",
                                                                                                                                                                         "+2.8", "+2.7", "+1.6", "+1.4", "+1.7", "+2.0", "+2.6", "+1.6",
                                                                                                                                                                         NA, NA, NA), Finals_Result = c("8.20m", "8.18m", "8.12m", "8.05m",
                                                                                                                                                                                                        "8.00m", "7.88m", "7.87m", "7.83m", "7.78m", "7.76m", "7.73m",
                                                                                                                                                                                                        "7.72m", "7.70m", "7.67m", "7.65m", "7.62m", "7.61m", "7.54m",
                                                                                                                                                                                                        "7.44m", "7.38m", "7.38m", "FOUL", "DNS", "DNS"), Event_Date = structure(c(18053,
                                                                                                                                                                                                                                                                                   18053, 18053, 18053, 18053, 18053, 18053, 18053, 18053, 18053,
                                                                                                                                                                                                                                                                                   18053, 18053, 18053, 18053, 18053, 18053, 18053, 18053, 18053,
                                                                                                                                                                                                                                                                                   18053, 18053, 18053, 18053, 18053), class = "Date"), Team = c(NA_character_,
                                                                                                                                                                                                                                                                                                                                                 NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
                                                                                                                                                                                                                                                                                                                                                 NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
                                                                                                                                                                                                                                                                                                                                                 NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
                                                                                                                                                                                                                                                                                                                                                 NA_character_, NA_character_, NA_character_, NA_character_, NA_character_,
                                                                                                                                                                                                                                                                                                                                                 NA_character_, NA_character_, NA_character_)), row.names = c(NA,
                                                                                                                                                                                                                                                                                                                                                                                                              -24L), class = "data.frame")

  expect_equivalent(df_test, df_standard)

})

test_that("tf_parse 1600m with team scores at bottom", {

  skip_on_cran()

  file <- "http://results.deltatiming.com/tf/2019-hurricane-invitational/190315F076"

  df_test <- file %>%
    read_results() %>%
    tf_parse()

  df_standard <-
    structure(list(Place = c("1", "2", "3", "4", "5", "6", "7", "8",
                             "9", "10", "11", "12", "13"), Name = c("Robert Pedroza", "Sukeil Foucha",
                                                                    "Will Noonan", "Alec Collado", "Humberto Ramirez", "Zachary Vincennie",
                                                                    "Kevin Kergean", "James Cusack", "George Stark", "Pedro Garcia",
                                                                    "Tomas Esber", "Lucas Nolasco", "Lucas Batista"), Age = c("JR",
                                                                                                                              "SR", "SR", "SR", "SO", "JR", "JR", "SR", "FR", "JR", "JR", "JR",
                                                                                                                              "SR"), Team = c("Key West HS", "Piper", "Spanish River", "Miami Coral Park",
                                                                                                                                              "Piper", "Spanish River", "Miami Columbus", "Ransom Everglades",
                                                                                                                                              "Palmer Trinity", "Braddock", "Ransom Everglades", "Cypress Bay",
                                                                                                                                              "Miami Coral Park"), Finals_Result = c("4:19.69", "4:25.06",
                                                                                                                                                                                     "4:25.56", "4:27.56", "4:28.72", "4:29.69", "4:32.37", "4:33.01",
                                                                                                                                                                                     "4:34.06", "4:38.01", "4:42.45", "4:42.76", "5:23.53"), DQ = c(0,
                                                                                                                                                                                                                                                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Event = c("Boys 1600m Run Invitational High School",
                                                                                                                                                                                                                                                                                                   "Boys 1600m Run Invitational High School", "Boys 1600m Run Invitational High School",
                                                                                                                                                                                                                                                                                                   "Boys 1600m Run Invitational High School", "Boys 1600m Run Invitational High School",
                                                                                                                                                                                                                                                                                                   "Boys 1600m Run Invitational High School", "Boys 1600m Run Invitational High School",
                                                                                                                                                                                                                                                                                                   "Boys 1600m Run Invitational High School", "Boys 1600m Run Invitational High School",
                                                                                                                                                                                                                                                                                                   "Boys 1600m Run Invitational High School", "Boys 1600m Run Invitational High School",
                                                                                                                                                                                                                                                                                                   "Boys 1600m Run Invitational High School", "Boys 1600m Run Invitational High School"
                                                                                                                                                                                                                                                    )), row.names = c(NA, -13L), class = "data.frame")

    expect_equivalent(df_test, df_standard)
})


test_that("hytek_parse long jump with wind speeds by round/attempt", {

  skip_on_cran()

  file <- "http://results.deltatiming.com/ncaa/tf/2019-florida-relays/print/190328F005"

  df_test <- file %>%
    read_results() %>%
    tf_parse(rounds = TRUE)

  df_standard <-
    structure(list(Place = c("1", "2", "3", "4", "5", "6", "7", "8",
                             "9", "10", "11", "12", "13", "14", "15", "16", "17"), Name = c("Alyssa Jones",
                                                                                            "Caroline Johnston", "Eddiyah Frye", "Destiny Castillo", "Morgan Bentley",
                                                                                            "Jordyn Showers", "Jasmyn Dorsey", "Christon Kingcade", "Samarah Hill",
                                                                                            "Ashantae Harvey", "Jaela Hollie", "Natiya James", "Saniah Fuller",
                                                                                            "Mackenzie Forrest", "Ameion Hamlet", "Gabriele Matthews", "Jiya Hastings"
                             ), Age = c("FR", "SR", "SO", "SR", "11", "JR", "JR", "SR", "SR",
                                        "JR", "SR", "JR", "SR", "JR", "JR", "JR", "SO"), Team = c("Miami Southridge",
                                                                                                  "Episcopal", "St. Thomas Aquinas", "Hallandale", "Brookwood",
                                                                                                  "Calvary Chri", "Mainland", "Miami Northwestern", "Trinity Prep",
                                                                                                  "Hallandale", "Jones", "Eastside", "Windermere", "Forest", "Godby",
                                                                                                  "Dr. Phillips", "DeLand"), Finals_Result = c("6.05m", "5.92m",
                                                                                                                                               "5.83m", "5.80m", "5.66m", "5.65m", "5.41m", "5.38m", "5.36m",
                                                                                                                                               "5.30m", "5.28m", "5.14m", "5.10m", "5.01m", "4.94m", "4.52m",
                                                                                                                                               "4.50m"), DQ = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                                                                                                                                                0, 0), Event = c("Girls Long Jump High School", "Girls Long Jump High School",
                                                                                                                                                                                 "Girls Long Jump High School", "Girls Long Jump High School",
                                                                                                                                                                                 "Girls Long Jump High School", "Girls Long Jump High School",
                                                                                                                                                                                 "Girls Long Jump High School", "Girls Long Jump High School",
                                                                                                                                                                                 "Girls Long Jump High School", "Girls Long Jump High School",
                                                                                                                                                                                 "Girls Long Jump High School", "Girls Long Jump High School",
                                                                                                                                                                                 "Girls Long Jump High School", "Girls Long Jump High School",
                                                                                                                                                                                 "Girls Long Jump High School", "Girls Long Jump High School",
                                                                                                                                                                                 "Girls Long Jump High School"), Round_1 = c("5.90m", "FOUL",
                                                                                                                                                                                                                              "FOUL", "FOUL", "5.53m", "5.64m", "FOUL", "5.38m", "FOUL", "5.12m",
                                                                                                                                                                                                                              "5.28m", "4.98m", "FOUL", "4.61m", "4.94m", "4.52m", "4.50m"),
                   Round_1_Wind = c("0.2", "1.9", "1.7", "2.7", "0.5", "1.4",
                                     "+0.0", "0.6", "0.5", "0.7", "0.3", "0.6", "2.3", "+0.0",
                                     "3.4", "1.9", "0.5"), Round_2 = c("6.05m", "5.65m", "FOUL",
                                                                        "5.80m", "FOUL", "5.65m", "5.41m", "ND", "5.24m", "5.30m",
                                                                        "5.09m", "5.14m", "4.85m", "ND", "FOUL", "ND", "ND"), Round_2_Wind = c("2.2",
                                                                                                                                                "+0.0", "0.2", "2.3", "1.7", "1.6", "+0.0", "2.1", "0.8",
                                                                                                                                                "1.0", "1.2", "0.7", "1.5", "1.7", "+0.0", "1.0", "0.2"),
                   Round_3 = c("5.93m", "FOUL", "5.83m", "ND", "5.49m", "5.26m",
                                "FOUL", "ND", "5.36m", "5.23m", "ND", "ND", "5.10m", "5.01m",
                                "FOUL", "ND", "FOUL"), Round_3_Wind = c("0.2", "0.2", "2.1",
                                                                         "+0.0", "1.1", "0.2", "1.1", "0.2", "1.9", "1.2", "1.7",
                                                                         "2.2", "0.5", "+0.0", "2.2", "0.3", "1.0"), Round_4 = c("5.93m",
                                                                                                                                  "5.72m", "5.29m", "FOUL", "FOUL", "5.43m", "5.23m", "5.18m",
                                                                                                                                  "5.29m", NA, NA, NA, NA, NA, NA, NA, NA), Round_4_Wind = c("1.7",
                                                                                                                                                                                              "0.8", "1.2", "0.2", "0.9", "0.6", "2.4", "0.9", "2.2", NA,
                                                                                                                                                                                              NA, NA, NA, NA, NA, NA, NA), Round_5 = c("5.74m", "5.72m",
                                                                                                                                                                                                                                        "5.81m", "FOUL", "FOUL", "5.46m", "5.14m", "FOUL", "5.16m",
                                                                                                                                                                                                                                        NA, NA, NA, NA, NA, NA, NA, NA), Round_5_Wind = c("1.5",
                                                                                                                                                                                                                                                                                           "0.9", "+0.0", "+0.0", "0.9", "1.2", "+0.0", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                           NA, NA, NA, NA, NA, NA, NA, NA), Round_6 = c("5.82m", "5.92m",
                                                                                                                                                                                                                                                                                                                                         "FOUL", "FOUL", "5.66m", "5.24m", "5.13m", "5.06m", "5.14m",
                                                                                                                                                                                                                                                                                                                                         NA, NA, NA, NA, NA, NA, NA, NA), Round_6_Wind = c("2.1",
                                                                                                                                                                                                                                                                                                                                                                                            "3.0", "1.4", "1.5", "3.4", "1.6", "+0.0", "1.9", "1.4",
                                                                                                                                                                                                                                                                                                                                                                                            NA, NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA, -17L), class = "data.frame")


  expect_equivalent(df_test, df_standard)
})


test_that("hytek_parse long jump with wind speeds by round/attempt, missing speeds", {

  skip_on_cran()

  file <- "http://results.deltatiming.com/tf/2019-tiger-track-classic/190405F032"

  df_test <- file %>%
    read_results() %>%
    tf_parse(rounds = TRUE)

  df_standard <-
    structure(list(Place = c("1", "2", "3", "4", "5", "6", "7", "8",
                             "9", "10", "11", "12", "13", "14", NA, NA, NA, NA), Name = c("Brandon Roulhac",
                                                                                          "Jamie Brown", "Michael Pichay", "Elijah White", "Willington Wright",
                                                                                          "Jacob Patten", "Benjamin Okafor", "Tyler Hanks", "Jordan Wallace",
                                                                                          "Marcus Cade", "DeAndre Baker", "Jordan Simons", "Nicholas Lyons",
                                                                                          "Eric Durham", "Philippe St-Hilaire", "John Warren", "Fabian Edoki",
                                                                                          "Devonta Brassell"), Age = c(NA, "SR", "SO", "SO", "FR", "SR",
                                                                                                                       "FR", "SO", "FR", "FR", "SR", "SO", "JR", "SR", NA, "SR", "JR",
                                                                                                                       "SR"), Team = c("Unattached", "Alabama State", "Holy Cross",
                                                                                                                                       "Maine", "Mid. Tenn. State", "Mid. Tenn. State", "Western Carolina",
                                                                                                                                       "Western Carolina", "Troy", "Alabama State", "Alabama A&M", "Alabama A&M",
                                                                                                                                       "Western Carolina", "Troy", "Unattached", "Southern Miss.", "Mid. Tenn. State",
                                                                                                                                       "Southern Miss."), Finals_Result = c("16.01m", "14.93m", "14.73m",
                                                                                                                                                                            "14.69m", "14.64m", "14.60m", "14.45m", "13.84m", "13.79m", "13.77m",
                                                                                                                                                                            "13.74m", "13.64m", "13.44m", "13.30m", "DNS", "DNS", "DNS",
                                                                                                                                                                            "DNS"), Wind_Speed = c("+0.0", NA, NA, NA, NA, NA, NA, NA, NA,
                                                                                                                                                                                                   NA, NA, NA, NA, NA, "NWI", "NWI", "NWI", "NWI"), DQ = c(0, 0,
                                                                                                                                                                                                                                                           0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), Event = c("Men Triple Jump",
                                                                                                                                                                                                                                                                                                                      "Men Triple Jump", "Men Triple Jump", "Men Triple Jump", "Men Triple Jump",
                                                                                                                                                                                                                                                                                                                      "Men Triple Jump", "Men Triple Jump", "Men Triple Jump", "Men Triple Jump",
                                                                                                                                                                                                                                                                                                                      "Men Triple Jump", "Men Triple Jump", "Men Triple Jump", "Men Triple Jump",
                                                                                                                                                                                                                                                                                                                      "Men Triple Jump", "Men Triple Jump", "Men Triple Jump", "Men Triple Jump",
                                                                                                                                                                                                                                                                                                                      "Men Triple Jump"), Round_1 = c("15.75m", "X", "X", "14.64m",
                                                                                                                                                                                                                                                                                                                                                      "14.33m", "14.40m", "14.09m", "13.50m", "X", "13.31m", "13.74m",
                                                                                                                                                                                                                                                                                                                                                      "13.62m", "13.44m", "X", NA, NA, NA, NA), Round_1_Wind = c("+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                 "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "-0.3", "-0.1",
                                                                                                                                                                                                                                                                                                                                                                                                                 "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", NA, NA, NA, NA), Round_2 = c("16.01m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "X", "14.73m", "14.66m", "14.31m", "14.60m", "14.45m", "13.84m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      "13.39m", "X", "X", "13.64m", "13.15m", "13.30m", NA, NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      NA), Round_2_Wind = c("+0.0", "+0.0", "+0.0", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "+0.0", "+0.0", "+0.0", "-0.1", "-0.6", "+0.0", "-1.4", "-0.8",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "-1.1", NA, NA, NA, NA), Round_3 = c("X", "14.91m", "X", "14.69m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "14.28m", "X", "14.25m", "X", "13.79m", "13.77m", "X", "X", "X",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "X", NA, NA, NA, NA), Round_3_Wind = c(NA, "+0.0", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "+0.0", "+0.0", "-0.9", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        "+0.0", "+0.0", NA, NA, NA, NA), Round_4 = c("15.91m", "14.34m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     "14.34m", "13.43m", "14.64m", "14.18m", "13.52m", "13.74m", "13.21m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     NA, NA, NA, NA, NA, NA, NA, NA, NA), Round_4_Wind = c("+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "0.3",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           NA, NA, NA, NA, NA, NA, NA, NA, NA), Round_5 = c("15.85m", "X",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            "14.14m", "14.56m", "14.60m", "13.94m", "X", "13.68m", "13.76m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            NA, NA, NA, NA, NA, NA, NA, NA, NA), Round_5_Wind = c("+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  "0.2", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  NA, NA, NA, NA, NA, NA, NA, NA, NA), Round_6 = c("14.74m", "14.93m",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   "14.31m", "X", "14.62m", "14.48m", "13.53m", "X", "X", NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   NA, NA, NA, NA, NA, NA, NA), Round_6_Wind = c("+0.0", "+0.0",
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", "+0.0", NA, NA,
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 NA, NA, NA, NA, NA, NA, NA)), row.names = c(NA, -18L), class = "data.frame")

  expect_equivalent(df_test, df_standard)
})


# testthat::test_file("tests/testthat/test-tf_parse.R")
gpilgrim2670/JumpeR documentation built on March 25, 2023, 4:57 p.m.