Phase 7 followup: set equality in core-= + phs-to-struct
- phm.janet: add phs-to-struct (converts set to struct via phm-to-struct)
- core.janet: core-= now handles set? with phs-to-struct normalization
- test/phase7-test.janet: add (= #{1 2 3} #{3 2 1}) assertion
- 315 ok, 2 fail (pre-existing, unchanged)
This commit is contained in:
parent
fe22fea3e4
commit
6c9e0c922d
3 changed files with 9 additions and 3 deletions
|
|
@ -87,7 +87,10 @@
|
|||
(set ok
|
||||
(if (phm? a)
|
||||
(deep= (phm-to-struct a) (if (phm? b) (phm-to-struct b) b))
|
||||
(if (phm? b) (deep= a (phm-to-struct b)) (deep= a b)))))
|
||||
(if (phm? b) (deep= a (phm-to-struct b))
|
||||
(if (set? a)
|
||||
(deep= (phs-to-struct a) (if (set? b) (phs-to-struct b) b))
|
||||
(if (set? b) (deep= a (phs-to-struct b)) (deep= a b)))))))
|
||||
(++ i))
|
||||
ok)))
|
||||
|
||||
|
|
|
|||
|
|
@ -194,3 +194,6 @@
|
|||
(defn phs-get [s x &opt default]
|
||||
(default default nil)
|
||||
(if (phm-contains? (s :phm) x) x default))
|
||||
|
||||
(defn phs-to-struct [s]
|
||||
(phm-to-struct (s :phm)))
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@
|
|||
(assert (= false (ct-eval ctx "(set? [1 2 3])")) "set? false")
|
||||
(assert (= 4 (ct-eval ctx "(count (conj #{1 2 3} 4))")) "conj add")
|
||||
(assert (= 2 (ct-eval ctx "(count (disj #{1 2 3} 3))")) "disj")
|
||||
(assert (= 3 (ct-eval ctx "(count #{1 2 3})")) "count"))
|
||||
(print " passed")
|
||||
(assert (= 3 (ct-eval ctx "(count #{1 2 3})")) "count")
|
||||
(assert (= true (ct-eval ctx "(= #{1 2 3} #{3 2 1})")) "= order-independent"))
|
||||
|
||||
(print "\nAll Phase 7 tests passed!")
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue