package scientific
import std.io.*
import std.env.*
import std.convert.*
import scientific.linear.benchmarks.*
import scientific.matplot.testTCDF
import std.env.*
import std.argopt.*
func runTests(): Unit {
// Import and run any tests here.
// testTCDF()
}
main(args: Array<String>): Unit {
// Check for system arguments
let argSpecs = [
Long("test", RequiredValue),
Long("size", RequiredValue),
Long("seed", RequiredValue)
]
try {
var result = parseArguments(args, argSpecs)
if (result.options.contains("test")) {
let test = result.options.get("test").getOrThrow()
let arg_size = result.options.get("size").getOrThrow {
ArgumentParseException("argument --size is not found")
}
let size = Int64.tryParse(arg_size).getOrThrow {
IllegalArgumentException("cannot parse size ${arg_size}")
}
let arg_seed = result.options.get("seed").getOrThrow {
ArgumentParseException("argument --seed is not found")
}
let seed = Int64.tryParse(arg_seed).getOrThrow {
IllegalArgumentException("cannot parse seed ${arg_seed}")
}
var time: Float64 = 0.0
if (test == "mult") {
multPerformance(size, seed)
} else if (test == "solve") {
solvePerformance(size, seed)
} else if (test == "inv") {
invPerformance(size, seed)
} else {
throw IllegalArgumentException("Unrecognized testname ${test}.")
}
} else {
// Otherwise, run unit tests
runTests()
}
} catch (e: ArgumentParseException) {
println("Usage: --test {mult/solve/inv} --size {size} --seed {seed}")
}
}