Skip to content

Commit 078abff

Browse files
committed
Merge pull request #26 from magistere/tests
Update tests using @test macro
2 parents 61b6dd7 + df57c24 commit 078abff

File tree

8 files changed

+147
-146
lines changed

8 files changed

+147
-146
lines changed

REQUIRE

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
julia 0.2-

run_tests.jl

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,19 @@
22
# Correctness Tests
33
#
44

5-
require("Calculus")
65
using Calculus
6+
using Base.Test
77

8-
my_tests = ["test/finite_difference.jl",
9-
"test/derivative.jl",
10-
"test/check_derivative.jl",
11-
"test/integrate.jl",
12-
"test/symbolic.jl",
13-
"test/deparse.jl"]
8+
tests = ["finite_difference",
9+
"derivative",
10+
"check_derivative",
11+
"integrate",
12+
"symbolic",
13+
"deparse"]
1414

1515
println("Running tests:")
1616

17-
for my_test in my_tests
18-
println(" * $(my_test)")
19-
include(my_test)
17+
for t in tests
18+
println(" * $(t)")
19+
include("test/$(t).jl")
2020
end

test/check_derivative.jl

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
@assert check_derivative(x -> sin(x), x -> cos(x), 0.0) < 10e-4
2-
@assert check_derivative(x -> sin(x), x -> cos(x), 1.0) < 10e-4
3-
@assert check_derivative(x -> sin(x), x -> cos(x), 10.0) < 10e-4
4-
@assert check_derivative(x -> sin(x), x -> cos(x), 100.0) < 10e-4
5-
@assert check_derivative(x -> sin(x), x -> cos(x), 1000.0) < 10e-4
1+
@test check_derivative(x -> sin(x), x -> cos(x), 0.0) < 10e-4
2+
@test check_derivative(x -> sin(x), x -> cos(x), 1.0) < 10e-4
3+
@test check_derivative(x -> sin(x), x -> cos(x), 10.0) < 10e-4
4+
@test check_derivative(x -> sin(x), x -> cos(x), 100.0) < 10e-4
5+
@test check_derivative(x -> sin(x), x -> cos(x), 1000.0) < 10e-4
66

7-
@assert check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [0.0, 0.0]) < 10e-4
8-
@assert check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [1.0, 1.0]) < 10e-4
9-
@assert check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [10.0, 10.0]) < 10e-4
10-
@assert check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [100.0, 100.0]) < 10e-4
11-
@assert check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [1000.0, 1000.0]) < 10e-4
7+
@test check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [0.0, 0.0]) < 10e-4
8+
@test check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [1.0, 1.0]) < 10e-4
9+
@test check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [10.0, 10.0]) < 10e-4
10+
@test check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [100.0, 100.0]) < 10e-4
11+
@test check_gradient(x -> sin(x[1]) + cos(x[2]), x -> [cos(x[1]), -sin(x[2])], [1000.0, 1000.0]) < 10e-4
1212

13-
@assert check_second_derivative(x -> sin(x), x -> -sin(x), 0.0) < 10e-4
14-
@assert check_second_derivative(x -> sin(x), x -> -sin(x), 1.0) < 10e-4
15-
@assert check_second_derivative(x -> sin(x), x -> -sin(x), 10.0) < 10e-4
16-
@assert check_second_derivative(x -> sin(x), x -> -sin(x), 100.0) < 10e-4
17-
@assert check_second_derivative(x -> sin(x), x -> -sin(x), 1000.0) < 10e-4
13+
@test check_second_derivative(x -> sin(x), x -> -sin(x), 0.0) < 10e-4
14+
@test check_second_derivative(x -> sin(x), x -> -sin(x), 1.0) < 10e-4
15+
@test check_second_derivative(x -> sin(x), x -> -sin(x), 10.0) < 10e-4
16+
@test check_second_derivative(x -> sin(x), x -> -sin(x), 100.0) < 10e-4
17+
@test check_second_derivative(x -> sin(x), x -> -sin(x), 1000.0) < 10e-4
1818

19-
@assert check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [0.0, 0.0]) < 10e-4
20-
@assert check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [1.0, 1.0]) < 10e-4
21-
@assert check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [10.0, 10.0]) < 10e-4
22-
@assert check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [100.0, 100.0]) < 10e-4
23-
@assert check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [1000.0, 1000.0]) < 10e-4
19+
@test check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [0.0, 0.0]) < 10e-4
20+
@test check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [1.0, 1.0]) < 10e-4
21+
@test check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [10.0, 10.0]) < 10e-4
22+
@test check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [100.0, 100.0]) < 10e-4
23+
@test check_hessian(x -> sin(x[1]) + cos(x[2]), x -> [-sin(x[1]) 0.0; 0.0 -cos(x[2])], [1000.0, 1000.0]) < 10e-4

test/deparse.jl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
@assert isequal(deparse(:(cos(x) + sin(x))), "cos(x) + sin(x)")
2-
@assert isequal(deparse(:(cos(x) + sin(x) + exp(-x))), "cos(x) + sin(x) + exp(-x)")
3-
@assert isequal(deparse(parse("x+y*z")), "x + y * z")
4-
@assert isequal(deparse(parse("(x+y)*z")), "(x + y) * z")
5-
@assert isequal(deparse(parse("1/(x/y)")), "1 / (x / y)")
6-
@assert isequal(deparse(parse("1/(x*y)")), "1 / (x * y)")
7-
@assert isequal(deparse(parse("z^(x+y)")), "z ^ (x + y)")
8-
@assert isequal(deparse(parse("z^(x*y)")), "z ^ (x * y)")
1+
@test isequal(deparse(:(cos(x) + sin(x))), "cos(x) + sin(x)")
2+
@test isequal(deparse(:(cos(x) + sin(x) + exp(-x))), "cos(x) + sin(x) + exp(-x)")
3+
@test isequal(deparse(parse("x+y*z")), "x + y * z")
4+
@test isequal(deparse(parse("(x+y)*z")), "(x + y) * z")
5+
@test isequal(deparse(parse("1/(x/y)")), "1 / (x / y)")
6+
@test isequal(deparse(parse("1/(x*y)")), "1 / (x * y)")
7+
@test isequal(deparse(parse("z^(x+y)")), "z ^ (x + y)")
8+
@test isequal(deparse(parse("z^(x*y)")), "z ^ (x * y)")

test/derivative.jl

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,47 +3,47 @@
33
#
44

55
f1(x::Real) = sin(x)
6-
@assert norm(derivative(f1, :scalar, :forward)(0.0) - cos(0.0)) < 10e-4
7-
@assert norm(derivative(f1, :scalar, :central)(0.0) - cos(0.0)) < 10e-4
8-
@assert norm(derivative(f1, :forward)(0.0) - cos(0.0)) < 10e-4
9-
@assert norm(derivative(f1, :central)(0.0) - cos(0.0)) < 10e-4
10-
@assert norm(derivative(f1)(0.0) - cos(0.0)) < 10e-4
6+
@test norm(derivative(f1, :scalar, :forward)(0.0) - cos(0.0)) < 10e-4
7+
@test norm(derivative(f1, :scalar, :central)(0.0) - cos(0.0)) < 10e-4
8+
@test norm(derivative(f1, :forward)(0.0) - cos(0.0)) < 10e-4
9+
@test norm(derivative(f1, :central)(0.0) - cos(0.0)) < 10e-4
10+
@test norm(derivative(f1)(0.0) - cos(0.0)) < 10e-4
1111

1212
f2(x::Vector) = sin(x[1])
13-
@assert norm(derivative(f2, :vector, :forward)([0.0]) - cos(0.0)) < 10e-4
14-
@assert norm(derivative(f2, :vector, :central)([0.0]) - cos(0.0)) < 10e-4
13+
@test norm(derivative(f2, :vector, :forward)([0.0]) - cos(0.0)) < 10e-4
14+
@test norm(derivative(f2, :vector, :central)([0.0]) - cos(0.0)) < 10e-4
1515

1616
#
1717
# ctranspose overloading
1818
#
1919

2020
f3(x::Real) = sin(x)
2121
for x in linspace(0.0, 0.1, 11) # seq()
22-
@assert norm(f3'(x) - cos(x)) < 10e-4
22+
@test norm(f3'(x) - cos(x)) < 10e-4
2323
end
2424

2525
#
2626
# gradient()
2727
#
2828

2929
f4(x::Vector) = (100.0 - x[1])^2 + (50.0 - x[2])^2
30-
@assert norm(gradient(f4, :forward)([100.0, 50.0]) - [0.0, 0.0]) < 10e-4
31-
@assert norm(gradient(f4, :central)([100.0, 50.0]) - [0.0, 0.0]) < 10e-4
32-
@assert norm(gradient(f4)([100.0, 50.0]) - [0.0, 0.0]) < 10e-4
30+
@test norm(gradient(f4, :forward)([100.0, 50.0]) - [0.0, 0.0]) < 10e-4
31+
@test norm(gradient(f4, :central)([100.0, 50.0]) - [0.0, 0.0]) < 10e-4
32+
@test norm(gradient(f4)([100.0, 50.0]) - [0.0, 0.0]) < 10e-4
3333

3434
#
3535
# second_derivative()
3636
#
3737

38-
@assert norm(second_derivative(x -> x^2)(0.0) - 2.0) < 10e-4
39-
@assert norm(second_derivative(x -> x^2)(1.0) - 2.0) < 10e-4
40-
@assert norm(second_derivative(x -> x^2)(10.0) - 2.0) < 10e-4
41-
@assert norm(second_derivative(x -> x^2)(100.0) - 2.0) < 10e-4
38+
@test norm(second_derivative(x -> x^2)(0.0) - 2.0) < 10e-4
39+
@test norm(second_derivative(x -> x^2)(1.0) - 2.0) < 10e-4
40+
@test norm(second_derivative(x -> x^2)(10.0) - 2.0) < 10e-4
41+
@test norm(second_derivative(x -> x^2)(100.0) - 2.0) < 10e-4
4242

4343
#
4444
# hessian()
4545
#
4646

4747
f5(x) = sin(x[1]) + cos(x[2])
48-
@assert norm(gradient(f5)([0.0, 0.0]) - [cos(0.0), -sin(0.0)]) < 10e-4
49-
@assert norm(hessian(f5)([0.0, 0.0]) - [-sin(0.0) 0.0; 0.0 -cos(0.0)]) < 10e-4
48+
@test norm(gradient(f5)([0.0, 0.0]) - [cos(0.0), -sin(0.0)]) < 10e-4
49+
@test norm(hessian(f5)([0.0, 0.0]) - [-sin(0.0) 0.0; 0.0 -cos(0.0)]) < 10e-4

test/finite_difference.jl

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,62 +2,62 @@
22
# Derivatives of f: R -> R
33
#
44

5-
@assert norm(Calculus.finite_difference(x -> x^2, 1.0, :forward) - 2.0) < 10e-4
6-
@assert norm(Calculus.finite_difference(x -> x^2, 1.0, :central) - 2.0) < 10e-4
7-
@assert norm(Calculus.finite_difference(x -> x^2, 1.0) - 2.0) < 10e-4
5+
@test norm(Calculus.finite_difference(x -> x^2, 1.0, :forward) - 2.0) < 10e-4
6+
@test norm(Calculus.finite_difference(x -> x^2, 1.0, :central) - 2.0) < 10e-4
7+
@test norm(Calculus.finite_difference(x -> x^2, 1.0) - 2.0) < 10e-4
88

9-
@assert norm(Calculus.finite_difference(x -> sin(x), 1.0, :forward) - cos(1.0)) < 10e-4
10-
@assert norm(Calculus.finite_difference(x -> sin(x), 1.0, :central) - cos(1.0)) < 10e-4
11-
@assert norm(Calculus.finite_difference(x -> sin(x), 1.0) - cos(1.0)) < 10e-4
9+
@test norm(Calculus.finite_difference(x -> sin(x), 1.0, :forward) - cos(1.0)) < 10e-4
10+
@test norm(Calculus.finite_difference(x -> sin(x), 1.0, :central) - cos(1.0)) < 10e-4
11+
@test norm(Calculus.finite_difference(x -> sin(x), 1.0) - cos(1.0)) < 10e-4
1212

13-
@assert norm(Calculus.finite_difference(x -> exp(-x), 1.0, :forward) - (-exp(-1.0))) < 10e-4
14-
@assert norm(Calculus.finite_difference(x -> exp(-x), 1.0, :central) - (-exp(-1.0))) < 10e-4
15-
@assert norm(Calculus.finite_difference(x -> exp(-x), 1.0) - (-exp(-1.0))) < 10e-4
13+
@test norm(Calculus.finite_difference(x -> exp(-x), 1.0, :forward) - (-exp(-1.0))) < 10e-4
14+
@test norm(Calculus.finite_difference(x -> exp(-x), 1.0, :central) - (-exp(-1.0))) < 10e-4
15+
@test norm(Calculus.finite_difference(x -> exp(-x), 1.0) - (-exp(-1.0))) < 10e-4
1616

1717
#
1818
# Gradients of f: R^n -> R
1919
#
2020

21-
@assert norm(Calculus.finite_difference(x -> x[1]^2, [1.0], :forward) - [2.0]) < 10e-4
22-
@assert norm(Calculus.finite_difference(x -> x[1]^2, [1.0], :central) - [2.0]) < 10e-4
23-
@assert norm(Calculus.finite_difference(x -> x[1]^2, [1.0]) - [2.0]) < 10e-4
21+
@test norm(Calculus.finite_difference(x -> x[1]^2, [1.0], :forward) - [2.0]) < 10e-4
22+
@test norm(Calculus.finite_difference(x -> x[1]^2, [1.0], :central) - [2.0]) < 10e-4
23+
@test norm(Calculus.finite_difference(x -> x[1]^2, [1.0]) - [2.0]) < 10e-4
2424

25-
@assert norm(Calculus.finite_difference(x -> sin(x[1]), [1.0], :forward) - [cos(1.0)]) < 10e-4
26-
@assert norm(Calculus.finite_difference(x -> sin(x[1]), [1.0], :central) - [cos(1.0)]) < 10e-4
27-
@assert norm(Calculus.finite_difference(x -> sin(x[1]), [1.0]) - [cos(1.0)]) < 10e-4
25+
@test norm(Calculus.finite_difference(x -> sin(x[1]), [1.0], :forward) - [cos(1.0)]) < 10e-4
26+
@test norm(Calculus.finite_difference(x -> sin(x[1]), [1.0], :central) - [cos(1.0)]) < 10e-4
27+
@test norm(Calculus.finite_difference(x -> sin(x[1]), [1.0]) - [cos(1.0)]) < 10e-4
2828

29-
@assert norm(Calculus.finite_difference(x -> exp(-x[1]), [1.0], :forward) - [-exp(-1.0)]) < 10e-4
30-
@assert norm(Calculus.finite_difference(x -> exp(-x[1]), [1.0], :central) - [-exp(-1.0)]) < 10e-4
31-
@assert norm(Calculus.finite_difference(x -> exp(-x[1]), [1.0]) - [-exp(-1.0)]) < 10e-4
29+
@test norm(Calculus.finite_difference(x -> exp(-x[1]), [1.0], :forward) - [-exp(-1.0)]) < 10e-4
30+
@test norm(Calculus.finite_difference(x -> exp(-x[1]), [1.0], :central) - [-exp(-1.0)]) < 10e-4
31+
@test norm(Calculus.finite_difference(x -> exp(-x[1]), [1.0]) - [-exp(-1.0)]) < 10e-4
3232

3333
#
3434
# Second derivatives of f: R -> R
3535
#
3636

37-
@assert norm(Calculus.finite_difference_hessian(x -> x^2, x -> 2 * x, 1.0) - 2.0) < 10e-4
38-
@assert norm(Calculus.finite_difference_hessian(x -> x^2, x -> 2 * x, 10.0) - 2.0) < 10e-4
39-
@assert norm(Calculus.finite_difference_hessian(x -> x^2, x -> 2 * x, 100.0) - 2.0) < 10e-4
37+
@test norm(Calculus.finite_difference_hessian(x -> x^2, x -> 2 * x, 1.0) - 2.0) < 10e-4
38+
@test norm(Calculus.finite_difference_hessian(x -> x^2, x -> 2 * x, 10.0) - 2.0) < 10e-4
39+
@test norm(Calculus.finite_difference_hessian(x -> x^2, x -> 2 * x, 100.0) - 2.0) < 10e-4
4040

41-
@assert norm(Calculus.finite_difference_hessian(x -> x^2, 1.0) - 2.0) < 10e-4
42-
@assert norm(Calculus.finite_difference_hessian(x -> x^2, 10.0) - 2.0) < 10e-4
43-
@assert norm(Calculus.finite_difference_hessian(x -> x^2, 100.0) - 2.0) < 10e-4
41+
@test norm(Calculus.finite_difference_hessian(x -> x^2, 1.0) - 2.0) < 10e-4
42+
@test norm(Calculus.finite_difference_hessian(x -> x^2, 10.0) - 2.0) < 10e-4
43+
@test norm(Calculus.finite_difference_hessian(x -> x^2, 100.0) - 2.0) < 10e-4
4444

4545
#
4646
# Hessians of f: R^n -> R
4747
#
4848

4949
fx(x) = sin(x[1]) + cos(x[2])
5050
gx = gradient(fx)
51-
@assert norm(gx([0.0, 0.0]) - [cos(0.0), -sin(0.0)]) < 10e-4
52-
@assert norm(Calculus.finite_difference_hessian(fx, gx, [0.0, 0.0], :central) - [-sin(0.0) 0.0; 0.0 -cos(0.0)]) < 10e-4
53-
@assert norm(Calculus.finite_difference_hessian(fx, [0.0, 0.0]) - [-sin(0.0) 0.0; 0.0 -cos(0.0)]) < 10e-4
51+
@test norm(gx([0.0, 0.0]) - [cos(0.0), -sin(0.0)]) < 10e-4
52+
@test norm(Calculus.finite_difference_hessian(fx, gx, [0.0, 0.0], :central) - [-sin(0.0) 0.0; 0.0 -cos(0.0)]) < 10e-4
53+
@test norm(Calculus.finite_difference_hessian(fx, [0.0, 0.0]) - [-sin(0.0) 0.0; 0.0 -cos(0.0)]) < 10e-4
5454

5555
#
5656
# Taylor Series first derivatives
5757
#
5858

59-
@assert norm(Calculus.taylor_finite_difference(x -> x^2, 1.0, :forward) - 2.0) < 10e-4
60-
@assert norm(Calculus.taylor_finite_difference(x -> x^2, 1.0, :central) - 2.0) < 10e-4
59+
@test norm(Calculus.taylor_finite_difference(x -> x^2, 1.0, :forward) - 2.0) < 10e-4
60+
@test norm(Calculus.taylor_finite_difference(x -> x^2, 1.0, :central) - 2.0) < 10e-4
6161

6262
#
6363
# Taylor Series second derivatives

test/integrate.jl

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,39 @@
1-
@assert norm(integrate(x -> 1 / x, 1.0, 2.0) - log(2)) < 10e-8
2-
@assert norm(integrate(x -> -sin(x), 0.0, pi) - (cos(pi) - cos(0.0))) < 10e-8
1+
@test norm(integrate(x -> 1 / x, 1.0, 2.0) - log(2)) < 10e-8
2+
@test norm(integrate(x -> -sin(x), 0.0, pi) - (cos(pi) - cos(0.0))) < 10e-8
33

44
r = integrate(x -> 1, 0, 1)
5-
@assert norm(r - 1) < 10e-8
5+
@test norm(r - 1) < 10e-8
66

77
r = integrate(x -> x, 0, 1)
8-
@assert norm(r - 0.5) < 10e-8
8+
@test norm(r - 0.5) < 10e-8
99

1010
r = integrate(x -> x * x, 0, 1)
11-
@assert norm(r - 1 / 3) < 10e-8
11+
@test norm(r - 1 / 3) < 10e-8
1212

1313
r = integrate(sin, 0, pi)
14-
@assert norm(r - 2) < 10e-8
14+
@test norm(r - 2) < 10e-8
1515

1616
r = integrate(cos, 0, pi)
17-
@assert norm(r - 0) < 10e-8
17+
@test norm(r - 0) < 10e-8
1818

1919
r = integrate(x -> sin(x)^2 + sin(x)^2, 0, pi)
20-
@assert norm(r - pi) < 10e-8
20+
@test norm(r - pi) < 10e-8
2121

2222
# Nice example, but requires Distributions
2323
# require("Distributions")
2424
# using Distributions
2525
# r = integrate(x -> pdf(Normal(0.0, 1.0), x), -10, 10)
26-
# @assert norm(1 - r) < 10e-8
26+
# @test norm(1 - r) < 10e-8
2727

2828
r = integrate(x -> 1 / x, 0.01, 1)
29-
@assert norm(r - 4.60517) < 10e-7
29+
@test norm(r - 4.60517) < 10e-7
3030

3131
r = integrate(x -> cos(x)^8, 0, 2 * pi)
32-
@assert norm(r - 35 * pi / 64) < 10e-7
32+
@test norm(r - 35 * pi / 64) < 10e-7
3333

3434
r = integrate(x -> sin(x) - sin(x^2) + sin(x^3), pi, 2 * pi)
35-
@assert norm(r - (-1.830467)) < 10e-7
35+
@test norm(r - (-1.830467)) < 10e-7
3636

3737
# Monte Carlo integration tests
3838
r = integrate(x -> sin(x), 0, pi, :monte_carlo)
39-
@assert norm(r - 2) < 10e-1
39+
@test norm(r - 2) < 10e-1

0 commit comments

Comments
 (0)