Function to test if input algorithm has the specified time complexity

expect_time_complexity(complexity.class, ..., f)

Arguments

complexity.class

A string denoting the expected complexity class

...

Parameters for passed function 'f'.

f

A function which returns a data frame composed of timings and corresponding data sizes, ideally from asymptoticTimings. (can use other functions)

Value

null for expected complexity, else throws error.

Details

For more information regarding its implementation or functionality/usage, please check https://anirban166.github.io//Testing-functions/

Examples

if (FALSE) { # Running the quick sort algorithm with sampling against a set of increasing input data sizes: ds = 10^seq(1, 3, by = 0.5) # Assigning a complexity class to test against: cc = "loglinear" # Note: short variable names are used to avoid exceeding the character limit in the line below. expect_time_complexity(cc, sort(sample(1:100, data.sizes, replace = TRUE), method = "quick"), ds) # The code above will throw an error if the function does not follow a log-linear trend. }