forked from rich-iannone/pointblank-workshop
-
Notifications
You must be signed in to change notification settings - Fork 0
/
game_revenue-validation.R
84 lines (81 loc) · 2.58 KB
/
game_revenue-validation.R
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
library(pointblank)
agent <-
create_agent(
tbl = ~pointblank::game_revenue,
actions = action_levels(
warn_at = 0.05,
stop_at = 0.10
),
tbl_name = "~pointblank::game_revenue",
label = "Validation plan generated by `draft_validation()`."
) %>%
# Expect that column `player_id` is of type: character
col_is_character(
columns = vars(player_id)
) %>%
# Expect that column `session_id` is of type: character
col_is_character(
columns = vars(session_id)
) %>%
# Expect that column `item_type` is of type: character
col_is_character(
columns = vars(item_type)
) %>%
# Expect that column `item_name` is of type: character
col_is_character(
columns = vars(item_name)
) %>%
# Expect that column `item_revenue` is of type: numeric
col_is_numeric(
columns = vars(item_revenue)
) %>%
# Expect that values in `item_revenue` should be between `0.004` and `142.989`
col_vals_between(
columns = vars(item_revenue),
left = 0.004,
right = 142.989
) %>%
# Expect that column `session_duration` is of type: numeric
col_is_numeric(
columns = vars(session_duration)
) %>%
# Expect that values in `session_duration` should be between `3.2` and `41`
col_vals_between(
columns = vars(session_duration),
left = 3.2,
right = 41
) %>%
# Expect that column `acquisition` is of type: character
col_is_character(
columns = vars(acquisition)
) %>%
# Expect that column `country` is of type: character
col_is_character(
columns = vars(country)
) %>%
# Expect that values in `country` should be in the set of `Germany`, `Canada`, `South Korea` (and 20 more)
col_vals_in_set(
columns = vars(country),
set = c("Germany", "Canada", "South Korea", "Sweden", "Austria", "Hong Kong", "United States", "Mexico", "Egypt", "Denmark", "Norway", "Japan", "Australia", "South Africa", "Spain", "France", "Portugal", "Russia", "India", "Switzerland", "China", "Philippines", "United Kingdom")
) %>%
# Expect entirely distinct rows across all columns
rows_distinct() %>%
# Expect that column schemas match
col_schema_match(
schema = col_schema(
player_id = "character",
session_id = "character",
session_start = c("POSIXct", "POSIXt"),
time = c("POSIXct", "POSIXt"),
item_type = "character",
item_name = "character",
item_revenue = "numeric",
session_duration = "numeric",
start_day = "Date",
acquisition = "character",
country = "character"
)
) %>%
interrogate()
agent
write_testthat_file(agent = agent, name = "game_revenue", path = ".")