going somewhere
This commit is contained in:
1 parent
b972e6e69f
commit
10b054db25
31 files changed
+621
-302
No files matched your search
@@ -1,7 +1,9 @@
|
||||
(ns skirmish.broker.broker-test
|
||||
(:require [midje.sweet :refer :all]
|
||||
[orchestra.spec.test :as st]
|
||||
[skirmish.broker.broker :refer [add-account-urls]]))
|
||||
[skirmish.broker.broker :refer [add-account-urls
|
||||
create-user-seed-from-email
|
||||
generate-amount-for-new-user]]))
|
||||
|
||||
(st/instrument)
|
||||
|
||||
@@ -13,3 +15,19 @@
|
||||
:skirmish.broker.account/url "http://localhost:1604/api/1/ledger/accounts/foo"}]}]
|
||||
(add-account-urls user) => ret)))
|
||||
|
||||
(facts "about the new users"
|
||||
(fact "we should add some random amount of damp in their account"
|
||||
(let [random-values (map generate-amount-for-new-user (range 10000))
|
||||
sum (reduce + random-values)
|
||||
mean (/ sum (count random-values))
|
||||
min-data (apply min random-values)
|
||||
max-data (apply max random-values)]
|
||||
(int mean) => 100027427
|
||||
min-data => 78422400
|
||||
max-data => 120128000))
|
||||
|
||||
(fact "we should generate the random seed by the email"
|
||||
(create-user-seed-from-email "foo@gmail.com") => 399122929
|
||||
(create-user-seed-from-email "boo@gmail.com") => 1433675645))
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
(:require [midje.sweet :refer :all]
|
||||
[orchestra.spec.test :as st]
|
||||
[datomic.api :as d]
|
||||
[skirmish.broker.db :refer [create-connection]]))
|
||||
[skirmish.broker.db :refer [create-connection]]
|
||||
[skirmish.broker.broker :refer [create-account]]))
|
||||
|
||||
(st/instrument)
|
||||
|
||||
@@ -15,7 +16,10 @@
|
||||
(fact "should be able to create new users"
|
||||
(let [conn (create-conn)
|
||||
email "foo@gmail.com"
|
||||
_ @(d/transact conn [[:skirmish.broker.user/create-user email]])
|
||||
account-id #uuid"dc0d1123-e659-4e8a-b38b-ece520f4c4d0"
|
||||
account (create-account account-id :dapm)
|
||||
_ @(d/transact conn [[:skirmish.broker.user/create-user email account]])
|
||||
db (d/db conn)
|
||||
user (d/pull db '[*] [:skirmish.broker.user/email email])]
|
||||
(:skirmish.broker.user/email user) => email)));
|
||||
user (d/pull db '[* {:skirmish.broker.user/accounts [*]}] [:skirmish.broker.user/email email])]
|
||||
(:skirmish.broker.user/email user) => email
|
||||
(-> user :skirmish.broker.user/accounts first :skirmish.broker.account/id) => account-id)))
|
||||
@@ -1,30 +0,0 @@
|
||||
(ns skirmish.cli.benchmark-test
|
||||
(:require [skirmish.cli.benchmark :refer :all]
|
||||
[midje.sweet :refer :all]
|
||||
[clojure.core.async :as async]))
|
||||
|
||||
(facts "creating simple orders"
|
||||
(fact "buy order"
|
||||
(let [buy-order (create-requests-payload-for-security 666 (str :equity/ibm) 1)
|
||||
expt {:benchmark/id 1 :price 2922 :quantity 2476 :security ":equity/ibm" :type :buy}]
|
||||
buy-order => expt));;
|
||||
(fact "sell order"
|
||||
(let [buy-order (create-requests-payload-for-security 667 (str :equity/ibm) 2)
|
||||
expt {:benchmark/id 2 :price 2740 :quantity 2516 :security ":equity/ibm" :type :sell}]
|
||||
buy-order => expt)))
|
||||
|
||||
(facts "the utility functions"
|
||||
(fact "no-more-then-n-simultaneously"
|
||||
(let [simultatious (atom [])
|
||||
input-chan (async/to-chan (range 10))
|
||||
sleep-time #(+ (mod (+ (* 5142 %) 8765) 200) 50)
|
||||
f (fn [i]
|
||||
(swap! simultatious #(conj % {:id i :status :start :value 1}))
|
||||
(Thread/sleep (sleep-time i))
|
||||
(swap! simultatious #(conj % {:id i :status :end :value -1}))
|
||||
i)
|
||||
res (async/<!! (async/into [] (no-more-then-n-simultaneously f input-chan 3)))
|
||||
simultatious-over-time (reductions #(+ %1 (:value %2)) 0 @simultatious)]
|
||||
(apply max simultatious-over-time) => 3
|
||||
(first simultatious-over-time) => 0
|
||||
(last simultatious-over-time) => 0)))
|
||||
Reference in new issue
Block a user