# Check the RCurl export ---------------------------------------------------
test_that("JSON character vector from RCurl matches reference", {
  metadata <-
    jsonlite::fromJSON(get_data_location("ExampleProject_metadata.json"))

  records <-
    jsonlite::fromJSON(get_data_location("ExampleProject_records.json"))

  redcap_output_json1 <- REDCap_split(records, metadata)

  # expect_known_hash(redcap_output_json1, "2c8b6531597182af1248f92124161e0c")
  # dput(redcap_output_json1)
  expect_identical(
    redcap_output_json1,
    list(structure(list(
      row = c(
        "AMC Javelin", "Cadillac Fleetwood",
        "Camaro Z28", "Chrysler Imperial", "Datsun 710", "Dodge Challenger",
        "Duster 360", "Ferrari Dino", "Fiat 128", "Fiat X1-9", "Ford Pantera L",
        "Honda Civic", "Hornet 4 Drive", "Hornet Sportabout", "Lincoln Continental",
        "Lotus Europa", "Maserati Bora", "Mazda RX4", "Mazda RX4 Wag",
        "Merc 230", "Merc 240D", "Merc 280", "Merc 280C", "Merc 450SE",
        "Merc 450SL", "Merc 450SLC", "Pontiac Firebird", "Porsche 914-2",
        "Toyota Corolla", "Toyota Corona", "Valiant", "Volvo 142E"
      ),
      mpg = c(
        "15.2", "10.4", "13.3", "14.7", "22.8", "15.5", "14.3",
        "19.7", "32.4", "27.3", "15.8", "30.4", "21.4", "18.7", "10.4",
        "30.4", "15", "21", "21", "22.8", "24.4", "19.2", "17.8",
        "16.4", "17.3", "15.2", "19.2", "26", "33.9", "21.5", "18.1",
        "21.4"
      ), cyl = c(
        "8", "8", "8", "8", "4", "8", "8", "6",
        "4", "4", "8", "4", "6", "8", "8", "4", "8", "6", "6", "4",
        "4", "6", "6", "8", "8", "8", "8", "4", "4", "4", "6", "4"
      ), disp = c(
        "304", "472", "350", "440", "108", "318", "360",
        "145", "78.7", "79", "351", "75.7", "258", "360", "460",
        "95.1", "301", "160", "160", "140.8", "146.7", "167.6", "167.6",
        "275.8", "275.8", "275.8", "400", "120.3", "71.1", "120.1",
        "225", "121"
      ), hp = c(
        "150", "205", "245", "230", "93", "150",
        "245", "175", "66", "66", "264", "52", "110", "175", "215",
        "113", "335", "110", "110", "95", "62", "123", "123", "180",
        "180", "180", "175", "91", "65", "97", "105", "109"
      ), drat = c(
        "3.15",
        "2.93", "3.73", "3.23", "3.85", "2.76", "3.21", "3.62", "4.08",
        "4.08", "4.22", "4.93", "3.08", "3.15", "3", "3.77", "3.54",
        "3.9", "3.9", "3.92", "3.69", "3.92", "3.92", "3.07", "3.07",
        "3.07", "3.08", "4.43", "4.22", "3.7", "2.76", "4.11"
      ), wt = c(
        "3.435",
        "5.25", "3.84", "5.345", "2.32", "3.52", "3.57", "2.77",
        "2.2", "1.935", "3.17", "1.615", "3.215", "3.44", "5.424",
        "1.513", "3.57", "2.62", "2.875", "3.15", "3.19", "3.44",
        "3.44", "4.07", "3.73", "3.78", "3.845", "2.14", "1.835",
        "2.465", "3.46", "2.78"
      ), qsec = c(
        "17.3", "17.98", "15.41",
        "17.42", "18.61", "16.87", "15.84", "15.5", "19.47", "18.9",
        "14.5", "18.52", "19.44", "17.02", "17.82", "16.9", "14.6",
        "16.46", "17.02", "22.9", "20", "18.3", "18.9", "17.4", "17.6",
        "18", "17.05", "16.7", "19.9", "20.01", "20.22", "18.6"
      ),
      vs = c(
        "0", "0", "0", "0", "1", "0", "0", "0", "1", "1",
        "0", "1", "1", "0", "0", "1", "0", "0", "0", "1", "1", "1",
        "1", "0", "0", "0", "0", "0", "1", "1", "1", "1"
      ), am = c(
        "0",
        "0", "0", "0", "1", "0", "0", "1", "1", "1", "1", "1", "0",
        "0", "0", "1", "1", "1", "1", "0", "0", "0", "0", "0", "0",
        "0", "0", "1", "1", "0", "0", "1"
      ), gear = c(
        "3", "3", "3",
        "3", "4", "3", "3", "5", "4", "4", "5", "4", "3", "3", "3",
        "5", "5", "4", "4", "4", "4", "4", "4", "3", "3", "3", "3",
        "5", "4", "3", "3", "4"
      ), carb = c(
        "2", "4", "4", "4", "1",
        "2", "4", "6", "1", "1", "4", "2", "1", "2", "4", "2", "8",
        "4", "4", "2", "2", "4", "4", "3", "3", "3", "2", "2", "1",
        "1", "1", "2"
      ), color_available___red = c(
        "1", "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", "0", "0"
      ), color_available___green = c(
        "1",
        "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", "0", "0"
      ), color_available___blue = c(
        "1",
        "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", "0", "0"
      ), color_available___black = 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", "0", "0", "0"
      ), motor_trend_cars_complete = c(
        "1",
        "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", "0", "0"
      ), letter_group___a = c(
        "1",
        "0", "1", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0",
        "0", "0", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0",
        "0", "0", "0", "0", "0", "0", "0"
      ), letter_group___b = c(
        "1",
        "0", "0", "1", "1", "0", "1", "0", "0", "0", "0", "0", "0",
        "0", "0", "0", "0", "0", "1", "1", "0", "0", "0", "0", "0",
        "0", "0", "0", "0", "0", "0", "0"
      ), letter_group___c = c(
        "0",
        "0", "1", "1", "1", "0", "1", "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"
      ), choice = c(
        "choice2",
        "", "choice1", "choice1", "", "", "choice1", "", "", "",
        "", "", "", "", "", "", "", "", "", "choice2", "", "", "",
        "", "", "", "", "", "", "", "", ""
      ), grouping_complete = c(
        "2",
        "0", "2", "2", "0", "0", "1", "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"
      )
    ), row.names = c(
      1L, 5L,
      6L, 9L, 11L, 12L, 13L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L,
      26L, 27L, 28L, 29L, 30L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L,
      42L, 43L, 44L, 45L
    ), class = "data.frame"), sale = structure(list(
      row = c(
        "AMC Javelin", "AMC Javelin", "AMC Javelin", "Camaro Z28",
        "Camaro Z28", "Chrysler Imperial", "Duster 360", "Duster 360",
        "Duster 360", "Duster 360", "Merc 230", "Merc 230", "Merc 230"
      ), redcap_repeat_instrument = c(
        "sale", "sale", "sale", "sale",
        "sale", "sale", "sale", "sale", "sale", "sale", "sale", "sale",
        "sale"
      ), redcap_repeat_instance = c(
        "1", "2", "3", "1", "2",
        "1", "1", "2", "3", "4", "1", "2", "3"
      ), price = c(
        "12000.50",
        "13750.77", "15004.57", "7800.00", "8000.00", "7500.00",
        "8756.40", "6800.88", "8888.88", "970.00", "7800.98", "7954.00",
        "6800.55"
      ), color = c(
        "1", "3", "2", "2", "3", "1", "4",
        "2", "1", "4", "2", "1", "3"
      ), customer = c(
        "Bob", "Sue",
        "Kim", "Janice", "Tim", "Jim", "Sarah", "Pablo", "Erica",
        "Juan", "Ted", "Quentin", "Sharon"
      ), sale_complete = c(
        "0",
        "2", "0", "2", "0", "2", "1", "0", "0", "0", "0", "0", "2"
      )
    ), row.names = c(
      2L, 3L, 4L, 7L, 8L, 10L, 14L, 15L, 16L,
      17L, 31L, 32L, 33L
    ), class = "data.frame"))
  )
})