Julia-lang - функциональное тестирование - PullRequest
0 голосов
/ 08 мая 2018

Я работаю над набором функций в Юлии, и мне нужно разработать набор тестов покрытия.У меня есть одна функция, которая возвращает 3 значения в кортеже.

Как я могу сделать тест, такой как:

@test_approx_eq_eps()

, который будет работать на всех трех выходных значениях, все из которых являются числами с плавающей запятой

1 Ответ

0 голосов
/ 08 мая 2018

Просто используйте цикл в любом из его ароматов:

julia> using Base.Test: @test_approx_eq_eps

julia> ns = tuple(ones(3)...)
(1.0, 1.0, 1.0)

julia> x = 1.0
1.0

julia> epsilon = 0.0
0.0

julia> for n in ns    # simple loop
           @test_approx_eq_eps n x epsilon
       end

julia> [@test_approx_eq_eps(n, x, epsilon) for n in ns]    # comprehension
3-element Array{Void,1}:
 nothing
 nothing
 nothing

julia> foreach(ns) do n    # foreach (doesn't return anything)
           @test_approx_eq_eps n x epsilon
       end

julia> test_aprox_eq_eps(n, x, epsilon) = @test_approx_eq_eps(n, x, epsilon)
test_aprox_eq_eps (generic function with 1 method)

julia> test_aprox_eq_eps.(ns, x, epsilon)    # broadcasting
(nothing, nothing, nothing)
...