Módulos y paquetes
J3.2 · Nivel J3 · Computación científica
Objetivos
- Módulos,
export y API.
- Estructura de un paquete.
- Pruebas con
Test.
Pkg.test en un paquete propio.
- Documentación e integración continua.
Del código suelto al paquete
Módulos
module Estadisticos
export rms, pico
rms(x) = sqrt(mean(abs2, x))
_ayuda(x) = x .- mean(x) # interno
end
using .Estadisticos
Un paquete
Descriptores/
Project.toml # name, uuid, version, [deps], [compat]
src/Descriptores.jl
test/runtests.jl
[deps] lista todo lo que se carga con using, incluidas las bibliotecas estándar.
Pruebas
@testset "Descriptores" begin
@test rms([3.0, 4.0]) ≈ sqrt(12.5)
@test_throws MethodError rms("hola")
@test (@inferred rms([1.0, 2.0])) isa Float64
end
Valores conocidos, propiedades y casos inválidos.
Errores que vimos
Statistics sin declarar en [deps] → no carga.
Manifest.toml caducado tras editar [deps] a mano.
- Una prueba que falla:
Pass 3 · Fail 1.
La doy por superada si…
- Distingo API exportada e interna.
- Creo un paquete y ejecuto
Pkg.test.
- Explico para qué sirven la documentación y la CI.