context("ggroc")



test_that("Ggroc screenshot looks normal", {
	skip_if(packageVersion("ggplot2") < "2.4")
	test_ggplot_screenshot <- function() {
		print(ggroc(r.s100b.percent, alpha = 0.5, colour = "red", linetype = 2, linewidth = 2))
	}
	expect_ggroc_doppelganger("ggroc.screenshot", test_ggplot_screenshot)
})

test_that("Ggroc works with legacy.axis and percent", {
	skip_if(packageVersion("ggplot2") < "2.4")
	
	# nothing
	test_ggplot_screenshot <- function() {
		print(ggroc(r.s100b))
	}
	expect_ggroc_doppelganger("ggroc.screenshot_base", test_ggplot_screenshot)
	
	# percent
	test_ggplot_screenshot <- function() {
		print(ggroc(r.s100b.percent))
	}
	expect_ggroc_doppelganger("ggroc.screenshot_percent", test_ggplot_screenshot)
	
	# legacy.axes
	test_ggplot_screenshot <- function() {
		print(ggroc(r.s100b, legacy.axes=TRUE))
	}
	expect_ggroc_doppelganger("ggroc.screenshot_legacy", test_ggplot_screenshot)
	
	# percent, legacy.axes
	test_ggplot_screenshot <- function() {
		print(ggroc(r.s100b.percent, legacy.axes=TRUE))
	}
	expect_ggroc_doppelganger("ggroc.screenshot_percent_legacy", test_ggplot_screenshot)
})

test_that("Ggroc list screenshot looks normal", {
	test_ggplot_list_screenshot <- function() {
		print(ggroc(list(s100b=r.s100b, wfns=r.wfns, ndka=r.ndka)))
	}
	expect_ggroc_doppelganger("ggroc.list.screenshot", test_ggplot_list_screenshot)
})

test_that("Ggroc list can take multiple aes", {
	test_ggplot_list_screenshot <- function() {
		print(ggroc(list(s100b=r.s100b, wfns=r.wfns, ndka=r.ndka), aes=c("c", "linetype")))
	}
	expect_ggroc_doppelganger("ggroc.list.multi.aes", test_ggplot_list_screenshot)
})

test_that("Ggroc list doesn't get merged with set colour", {
	test_ggplot_list_screenshot <- function() {
		print(ggroc(list(s100b=r.s100b, wfns=r.wfns, ndka=r.ndka), colour="red"))
	}
	expect_ggroc_doppelganger("ggroc.list.colour", test_ggplot_list_screenshot)
})

test_that("Ggroc list extra aestetics screenshot looks normal", {
	test_ggplot_list_extra_aes_screenshot <- function() {
		print(ggroc(list(s100b=r.s100b, wfns=r.wfns, ndka=r.ndka), aes="linetype", color="red"))
	}
	expect_ggroc_doppelganger("ggroc.list.extra.aes.screenshot", test_ggplot_list_extra_aes_screenshot)
})

test_that("Ggroc list with group facet screenshot looks normal", {
	test_ggplot_list_group_facet_screenshot <- function() {
		library(ggplot2)
		g <- ggroc(list(s100b=r.s100b, wfns=r.wfns, ndka=r.ndka), aes="group") + facet_grid(.~name)
		print(g)
	}
	expect_ggroc_doppelganger("ggroc.list.group.facet.screenshot", test_ggplot_list_group_facet_screenshot)
})

test_that("Ggroc aesthetics can be modified with scale_colour_manual", {
	test_ggplot_list_screenshot <- function() {
		print(ggroc(list(s100b=r.s100b, wfns=r.wfns, ndka=r.ndka), aes=c("c", "linetype")) +
			  	scale_colour_manual(values = c("purple", "yellow", "purple")))
	}
	expect_ggroc_doppelganger("ggroc.list.scale.colour.manual", test_ggplot_list_screenshot)
})


test_that("Ggroc screenshot looks normal with a single smooth.roc", {
	skip_if(packageVersion("ggplot2") < "2.4")
	test_ggplot_screenshot <- function() {
		print(ggroc(smooth(r.s100b), , alpha = 0.5, colour = "red", linetype = 2, linewidth = 2))
	}
	expect_ggroc_doppelganger("ggroc.smooth.screenshot", test_ggplot_screenshot)
})

test_that("Ggroc screenshot looks normal with a list of smooth.roc", {
	test_ggplot_screenshot <- function() {
		print(ggroc(list(s100b=smooth(r.s100b), wfns=smooth(r.wfns), ndka=smooth(r.ndka))))
	}
	expect_ggroc_doppelganger("ggroc.smooth.list.screenshot", test_ggplot_screenshot)
})
