;; Copyright 2017 the authors. ;; This file is part of Hy, which is free software licensed under the Expat ;; license. See the LICENSE. ;; Tests where the emitted code relies on Python ≥3.5. ;; conftest.py skips this file when running on Python <3.5. (defn test-unpacking-pep448-1star [] (setv l [1 2 3]) (setv p [4 5]) (assert (= ["a" #*l "b" #*p #*l] ["a" 1 2 3 "b" 4 5 1 2 3])) (assert (= (, "a" #*l "b" #*p #*l) (, "a" 1 2 3 "b" 4 5 1 2 3))) (assert (= #{"a" #*l "b" #*p #*l} #{"a" "b" 1 2 3 4 5})) (defn f [&rest args] args) (assert (= (f "a" #*l "b" #*p #*l) (, "a" 1 2 3 "b" 4 5 1 2 3))) (assert (= (+ #*l #*p) 15)) (assert (= (and #*l) 3))) (defn test-unpacking-pep448-2star [] (setv d1 {"a" 1 "b" 2}) (setv d2 {"c" 3 "d" 4}) (assert (= {1 "x" #**d1 #**d2 2 "y"} {"a" 1 "b" 2 "c" 3 "d" 4 1 "x" 2 "y"})) (defn fun [&optional a b c d e f] [a b c d e f]) (assert (= (fun #**d1 :e "eee" #**d2) [1 2 3 4 "eee" None])))