Skip to content

Commit a496205

Browse files
authored
fix missing methods for + (#200)
* actually test associtive property and uniqueness for + of terms * add missing methods for + * bump patch version
1 parent bdc935f commit a496205

File tree

3 files changed

+14
-6
lines changed

3 files changed

+14
-6
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "StatsModels"
22
uuid = "3eaba693-59b7-5ba5-a881-562e759f1c8d"
3-
version = "0.6.15"
3+
version = "0.6.16"
44

55
[deps]
66
DataAPI = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a"

src/terms.jl

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -400,9 +400,10 @@ Base.:&(terms::AbstractTerm...) = InteractionTerm(terms)
400400
Base.:&(term::AbstractTerm) = term
401401
Base.:&(it::InteractionTerm, terms::AbstractTerm...) = InteractionTerm((it.terms..., terms...))
402402

403-
Base.:+(terms::AbstractTerm...) = (unique(terms)..., )
404-
Base.:+(as::TupleTerm, b::AbstractTerm) = (as..., b)
405-
Base.:+(a::AbstractTerm, bs::TupleTerm) = (a, bs...)
403+
Base.:+(a::AbstractTerm, b::AbstractTerm) = a==b ? a : (a, b)
404+
Base.:+(as::TupleTerm, b::AbstractTerm) = b in as ? as : (as..., b)
405+
Base.:+(a::AbstractTerm, bs::TupleTerm) = a in bs ? bs : (a, bs...)
406+
Base.:+(as::TupleTerm, bs::TupleTerm) = (union(as, bs)..., )
406407

407408
################################################################################
408409
# evaluating terms with data to generate model matrix entries

test/terms.jl

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,15 @@ StatsModels.apply_schema(mt::MultiTerm, sch::StatsModels.Schema, Mod::Type) =
7575
@test string(a & b) == "$a & $b"
7676
@test mimestring(a & b) == "a(unknown) & b(unknown)"
7777
c = term(:c)
78-
@test (a+b)+c == (a,b,c)
79-
@test a+(b+c) == (a,b,c)
78+
ab = a+b
79+
bc = b+c
80+
abc = a+b+c
81+
@test ab+c == abc
82+
@test ab+a == ab
83+
@test a+bc == abc
84+
@test b+ab == ab
85+
@test ab+ab == ab
86+
@test ab+bc == abc
8087
end
8188

8289
@testset "expand nested tuples of terms during apply_schema" begin

0 commit comments

Comments
 (0)