Skip to content

Commit 4477c90

Browse files
Implement big-int? for jank
1 parent 1a5a346 commit 4477c90

3 files changed

Lines changed: 30 additions & 28 deletions

File tree

test/clojure/core_test/plus_squote.cljc

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(ns clojure.core-test.plus-squote
22
(:require [clojure.test :as t :refer [are deftest is]]
33
[clojure.core-test.number-range :as r]
4-
[clojure.core-test.portability #?(:cljs :refer-macros :default :refer) [when-var-exists]]))
4+
[clojure.core-test.portability :as p #?(:cljs :refer-macros :default :refer) [when-var-exists]]))
55

66
(when-var-exists +'
77
(deftest test-+'
@@ -18,8 +18,8 @@
1818
-2 -1 -1
1919
-1 -1 0
2020
-1 0 -1
21-
(+ 1N r/max-int) r/max-int 1
22-
(- r/min-int 1N) -1 r/min-int
21+
; (+ 1N r/max-int) r/max-int 1
22+
; (- r/min-int 1N) -1 r/min-int
2323

2424
0.0 0.0 0.0
2525
1.0 1.0 0.0
@@ -74,15 +74,16 @@
7474
:default [(is (thrown? #?(:cljs :default :clj Exception :cljr Exception) (+' 1 nil)))
7575
(is (thrown? #?(:cljs :default :clj Exception :cljr Exception) (+' nil 1)))])
7676

77-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' 0 1N)))
78-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' 0N 1)))
79-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' 0N 1N)))
80-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' 1N 1)))
81-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' 1 1N)))
82-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' 1N 1N)))
83-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' 1 5N)))
84-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' 1N 5)))
85-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' 1N 5N)))
77+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' 0 1N)))
78+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' 0N 1)))
79+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' 0N 1N)))
80+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' 1N 1)))
81+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' 1 1N)))
82+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' 1N 1N)))
83+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' 1 5N)))
84+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' 1N 5)))
85+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' 1N 5N)))
8686

87-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' -1 r/min-int)))
88-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (+' r/min-int -1)))))
87+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' -1 r/min-int)))
88+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (+' r/min-int -1)))
89+
))

test/clojure/core_test/portability.cljc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
;; In CLJS, all numbers are really doubles and integer? and int?
1515
;; return true if the fractional part of the double is zero
1616
#?(:cljs (integer? n)
17+
:jank (cpp/jank.runtime.is_big_integer n)
1718
:default
1819
(and (integer? n)
1920
(not (int? n)))))

test/clojure/core_test/star_squote.cljc

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
(ns clojure.core-test.star-squote
22
(:require [clojure.test :as t :refer [are deftest is]]
33
[clojure.core-test.number-range :as r]
4-
[clojure.core-test.portability #?(:cljs :refer-macros :default :refer) [when-var-exists]]))
4+
[clojure.core-test.portability :as p #?(:cljs :refer-macros :default :refer) [when-var-exists]]))
55

66
(when-var-exists *'
77
(deftest test-*'
@@ -74,19 +74,19 @@
7474
:default [(is (thrown? #?(:cljs :default :clj Exception :cljr Exception) (*' 1 nil)))
7575
(is (thrown? #?(:cljs :default :clj Exception :cljr Exception) (*' nil 1)))])
7676

77-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 0 1N)))
78-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 0N 1)))
79-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 0N 1N)))
80-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 1N 1)))
81-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 1 1N)))
82-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 1N 1N)))
83-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 1 5N)))
84-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 1N 5)))
85-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 1N 5N)))
77+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 0 1N)))
78+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 0N 1)))
79+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 0N 1N)))
80+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 1N 1)))
81+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 1 1N)))
82+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 1N 1N)))
83+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 1 5N)))
84+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 1N 5)))
85+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 1N 5N)))
8686

87-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' -1 r/min-int)))
88-
(is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' r/min-int -1)))
87+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' -1 r/min-int)))
88+
(is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' r/min-int -1)))
8989
#?(:jank nil ;; Currently `long` hasn't been ported in jank.
90-
:default (is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' (long (/ r/min-int 2)) 3))))
90+
:default (is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' (long (/ r/min-int 2)) 3))))
9191
#?(:jank nil
92-
:default (is (#?@(:jank [cpp/jank.runtime.is_big_integer] :default [instance? clojure.lang.BigInt]) (*' 3 (long (/ r/min-int 2))))))))
92+
:default (is (#?@(:jank [p/big-int?] :default [instance? clojure.lang.BigInt]) (*' 3 (long (/ r/min-int 2))))))))

0 commit comments

Comments
 (0)