Skip to content

Commit b670a14

Browse files
committed
Reuse existing test instead of adding another one
1 parent d3f9430 commit b670a14

File tree

1 file changed

+28
-63
lines changed

1 file changed

+28
-63
lines changed

test/runtests.jl

Lines changed: 28 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -687,76 +687,15 @@ end
687687
end
688688

689689
@testset "Predict" begin
690-
# Linear model
691-
rng = StableRNG(123)
692-
X = rand(rng, 10, 2)
693-
Y = rand(rng, 10)
694-
695-
lmpred = fit(LinearModel, X, Y)
696-
@test predict(lmpred) == fitted(lmpred)
697-
698-
newX = rand(rng, 5, 2)
699-
newY = newX * coef(lmpred)
700-
lmpred_pred1 = predict(lmpred, newX)
701-
lmpred_pred2 = predict(lmpred, newX; interval=:confidence)
702-
lmpred_pred3 = predict(lmpred, newX; interval=:prediction)
703-
@test lmpred_pred1 == lmpred_pred2.prediction == lmpred_pred3.prediction newY
704-
@test lmpred_pred2.upper
705-
[0.6170432517234414, 0.6857915349758823, 0.8644361267055548,
706-
0.2510551586658352, 0.6280144618607879]
707-
@test lmpred_pred2.lower
708-
[0.32609178249933063, 0.41055748807994336, 0.5523913320342061,
709-
0.14588615084888942, 0.2619696605732852]
710-
@test lmpred_pred3.upper
711-
[0.8217622514968357, 0.8951782691056336, 1.0631194540216677,
712-
0.5213302104184558, 0.8123751878951413]
713-
@test lmpred_pred3.lower
714-
[0.12137278272593627, 0.20117075395019213, 0.35370800471809305,
715-
-0.12438890090373123, 0.07760893453893175]
716-
717-
@test ndims(lmpred_pred1) == 1
718-
719-
@test ndims(lmpred_pred2.prediction) == 1
720-
@test ndims(lmpred_pred2.upper) == 1
721-
@test ndims(lmpred_pred2.lower) == 1
722-
723-
@test ndims(lmpred_pred3.prediction) == 1
724-
@test ndims(lmpred_pred3.upper) == 1
725-
@test ndims(lmpred_pred3.lower) == 1
726-
727-
@test predict!(similar(Y, size(newX, 1)), lmpred, newX) == predict(lmpred, newX)
728-
@test predict!((prediction=similar(Y, size(newX, 1)),
729-
lower=similar(Y, size(newX, 1)),
730-
upper=similar(Y, size(newX, 1))),
731-
lmpred, newX, interval=:confidence) ==
732-
predict(lmpred, newX, interval=:confidence)
733-
@test predict!((prediction=similar(Y, size(newX, 1)),
734-
lower=similar(Y, size(newX, 1)),
735-
upper=similar(Y, size(newX, 1))),
736-
lmpred, newX, interval=:prediction) ==
737-
predict(lmpred, newX, interval=:prediction)
738-
@test_throws ArgumentError predict!((prediction=similar(Y, size(newX, 1)),
739-
lower=similar(Y, size(newX, 1)),
740-
upper=similar(Y, size(newX, 1))), lmpred, newX)
741-
@test_throws ArgumentError predict!(similar(Y, size(newX, 1)), lmpred, newX,
742-
interval=:confidence)
743-
@test_throws ArgumentError predict!(similar(Y, size(newX, 1)), lmpred, newX,
744-
interval=:prediction)
745-
@test_throws DimensionMismatch predict!([1], lmpred, newX)
746-
@test_throws DimensionMismatch predict!((prediction=similar(Y, size(newX, 1)),
747-
lower=similar(Y, size(newX, 1)),
748-
upper=[1]),
749-
lmpred, newX, interval=:confidence)
750-
751-
# Binomial GLM with perfect fit
690+
# Binomial GLM
752691
rng = StableRNG(123)
753692
X = rand(rng, 10, 2)
754693
Y = logistic.(X * [3; -3])
755694

756695
gm11 = fit(GeneralizedLinearModel, X, Y, Binomial())
757696
@test isapprox(predict(gm11), Y)
758697
@test predict(gm11) == fitted(gm11)
759-
698+
760699
newX = rand(rng, 5, 2)
761700
newY = logistic.(newX * coef(gm11))
762701
gm11_pred1 = predict(gm11, newX)
@@ -812,6 +751,7 @@ end
812751
@test isapprox(predict(gm12, newX, offset=newoff),
813752
logistic.(newX * coef(gm12) .+ newoff))
814753

754+
815755
# Prediction from DataFrames
816756
d = DataFrame(X, :auto)
817757
d.y = Y
@@ -868,6 +808,31 @@ end
868808
@test pred3.upper pred3.prediction + quantile(TDist(dof_residual(mm)), 0.975)*sqrt.(diag(newX*vcov(mm)*newX') .+ deviance(mm)/dof_residual(mm))
869809
[3.9288331595737196, 4.077092463922373, 4.762903743958081, 3.82184595169028, 4.034521019386702]
870810

811+
@test predict!(similar(Y, size(newX, 1)), mm, newX) == predict(mm, newX)
812+
@test predict!((prediction=similar(Y, size(newX, 1)),
813+
lower=similar(Y, size(newX, 1)),
814+
upper=similar(Y, size(newX, 1))),
815+
mm, newX, interval=:confidence) ==
816+
predict(mm, newX, interval=:confidence)
817+
@test predict!((prediction=similar(Y, size(newX, 1)),
818+
lower=similar(Y, size(newX, 1)),
819+
upper=similar(Y, size(newX, 1))),
820+
mm, newX, interval=:prediction) ==
821+
predict(mm, newX, interval=:prediction)
822+
@test_throws ArgumentError predict!((prediction=similar(Y, size(newX, 1)),
823+
lower=similar(Y, size(newX, 1)),
824+
upper=similar(Y, size(newX, 1))), mm, newX)
825+
@test_throws ArgumentError predict!(similar(Y, size(newX, 1)), mm, newX,
826+
interval=:confidence)
827+
@test_throws ArgumentError predict!(similar(Y, size(newX, 1)), mm, newX,
828+
interval=:prediction)
829+
@test_throws DimensionMismatch predict!([1], mm, newX)
830+
@test_throws DimensionMismatch predict!((prediction=similar(Y, size(newX, 1)),
831+
lower=similar(Y, size(newX, 1)),
832+
upper=[1]),
833+
mm, newX, interval=:confidence)
834+
835+
871836
# Prediction with dropcollinear (#409)
872837
x = [1.0 1.0
873838
1.0 2.0

0 commit comments

Comments
 (0)