diff --git a/test/tests.jl b/test/tests.jl index c7b64cba5eaa43740dd69afbaf68bf7a99b14d6a..b769bdc4396ff73aaf9987f7541b24c827105be1 100644 --- a/test/tests.jl +++ b/test/tests.jl @@ -1,15 +1,78 @@ module SystemIdentificationTests -export run_tests() +export run_tests using SystemIdentification + +macro test(text,x) + + return :(begin + global success = 0 + global fail = 0 + print("Testing ",$text, ": ") + try + $x + if fail == 0 + print_with_color(:green, "Success: $success\n") + else + print_with_color(:green, "Success: $success, ") + print_with_color(:red, "Failed: $fail\n") + end + catch ex + print_with_color(:red, "Failed: ") + print(ex, "\n") + end + end) +end + +macro tassert(x) + return :(begin + try + @assert $x + success += 1 + catch ex + if isa(ex,AssertionError) + print_with_color(:red, "Error: ") + print(ex.msg, " ") + fail += 1 + else + rethrow(ex) + end + end + end) +end + function run_tests() - @assert isa(1,Polynom) - @assert isa(1.0,Polynom) - @assert isa([1.0; 1.0],Polynom) - @assert isa(1.0,PolynomMatrix) - @assert isa(1,PolynomMatrix) + @test "Polynomials " begin + @tassert isa(1,Polynom) + @tassert isa(1.0,Polynom) + @tassert isa([1.0; 1.0],Polynom) + @tassert isa(1.0,PolynomMatrix) + @tassert isa(1,PolynomMatrix) + end + + @test "AR " begin + model, result = ar(collect(1:5.0),1,bias=true) + fit = result.fit + @tassert isa(model,AR) + @tassert isa(result,FitResult) + @tassert isa(fit,FitStatistics) + @tassert model.a ≈ [1;1] + @tassert fit.FIT ≈ 100.0 + @tassert isapprox(fit.RMS, 0.0, atol=1e-10) + @tassert result.method == :LS + end - #ar(collect(1:5.0),1,bias=true) + @test "ARX " begin + model, result = arx(collect(1:5.0),collect(1:5.0),1,1,bias=true) + fit = result.fit + @tassert isa(model,ARX) + @tassert isa(result,FitResult) + @tassert isa(fit,FitStatistics) + @tassert model.a ≈ [1;1] + @tassert fit.FIT ≈ 100.0 + @tassert isapprox(fit.RMS, 0.0, atol=1e-10) + @tassert result.method == :LS + end end end