File tree Expand file tree Collapse file tree 3 files changed +53
-7
lines changed
Expand file tree Collapse file tree 3 files changed +53
-7
lines changed Original file line number Diff line number Diff line change 22
33## Unreleased
44
5+ - Fix regression on models with no extraPayload.
6+
57## 0.69.0
68
79- Support multiple model configs with different payloads using same model name via ` modelName ` config. (Ex: gpt-5 and gpt-5-high but both use gpt-5)
Original file line number Diff line number Diff line change 5050
5151(defn deep-merge [v & vs]
5252 (letfn [(rec-merge [v1 v2]
53- (if (and (map? v1) (map? v2))
54- (merge-with deep-merge v1 v2)
55- v2))]
56- (when (some identity vs)
57- (reduce #(rec-merge %1 %2 ) v vs))))
53+ (cond
54+ (nil? v1) v2
55+ (nil? v2) v1
56+ (and (map? v1) (map? v2)) (merge-with deep-merge v1 v2)
57+ :else v2))]
58+ (reduce rec-merge v vs)))
5859
5960(defn assoc-some
6061 " Assoc[iate] if the value is not nil. "
6667 (if (next kvs)
6768 (recur ret (first kvs) (second kvs) (nnext kvs))
6869 (throw (IllegalArgumentException.
69- " assoc-some expects even number of arguments after map/vector, found odd number" )))
70+ " assoc-some expects even number of arguments after map/vector, found odd number" )))
7071 ret))))
7172
7273(defn update-some
Original file line number Diff line number Diff line change 22 (:require
33 [clojure.test :refer [deftest is testing]]
44 [eca.shared :as shared]
5- [eca.test-helper :as h]))
5+ [eca.test-helper :as h]
6+ [matcher-combinators.test :refer [match?]]))
67
78(deftest uri->filename-test
89 (testing " should decode special characters in file URI"
4849 (is (nil? (shared/tokens->cost 30 nil nil 20 {}))))
4950 (testing " returns nil when mandatory costs are missing"
5051 (is (nil? (shared/tokens->cost 30 nil nil 20 {:input-token-cost 0.01 }))))))
52+
53+ (deftest deep-merge-test
54+ (testing " second map as nil returns first map"
55+ (is (match?
56+ {:a 1 }
57+ (shared/deep-merge {:a 1 }
58+ nil ))))
59+ (testing " basic merge"
60+ (is (match?
61+ {:a 1
62+ :b 4
63+ :c 3
64+ :d 1 }
65+ (shared/deep-merge {:a 1 }
66+ {:b 2 }
67+ {:c 3 }
68+ {:b 4 :d 1 }))))
69+ (testing " deep merging"
70+ (is (match?
71+ {:a 1
72+ :b {:c {:d 3
73+ :e 4 }}}
74+ (shared/deep-merge {:a 1
75+ :b {:c {:d 3 }}}
76+ {:b {:c {:e 4 }}}))))
77+ (testing " deep merging maps with other keys"
78+ (is (match?
79+ {:a 1
80+ :b {:c {:e 3
81+ :f 4 }
82+ :d 2 }}
83+ (shared/deep-merge {:a 1
84+ :b {:c {:e 3 }
85+ :d 2 }}
86+ {:b {:c {:f 4 }}}))))
87+ (testing " overrides when leaf values are not maps"
88+ (is (= {:a 2 }
89+ (shared/deep-merge {:a {:b 1 }}
90+ {:a 2 })))
91+ (is (= {:a {:b 1 }}
92+ (shared/deep-merge {:a 2 }
93+ {:a {:b 1 }})))))
You can’t perform that action at this time.
0 commit comments