started to refactor code.

This commit is contained in:
didier amyot committed 2020-09-10 13:25:10 -04:00
1 parent c5d4e83d44
commit ed7f4ef668
5 files changed
+300 -111

No files matched your search

-6
View File
@@ -1,6 +0,0 @@
(ns skirmish.ledger.core-test
(:require [clojure.test :refer :all])
(:require [skirmish.ledger.core :refer [get-amount-in-account]]))
(deftest get-amount-in-account-test)
+20 -18
View File
@@ -1,13 +1,15 @@
(ns skirmish.ledger.test-core
(:require [midje.sweet :refer :all]
[datomic.api :as d]
[clojure.edn]
[skirmish.ledger.data-layer :as data-layer]
[skirmish.ledger.accounts :refer [create-connection schema]]
[skirmish.rest.util :refer [build-response]]
[skirmish.ledger.core :refer :all]
[skirmish.rest.util :refer [edn->stream]]
[datomic.api :as d]
[clojure.edn]
[clojure.spec.alpha :as s]
[infix.macros :refer [infix]]
[skirmish.ledger.accounts :refer [create-connection schema]]))
[infix.macros :refer [infix]]))
(defn spec-check [spec]
#(s/valid? spec %))
@@ -208,11 +210,11 @@
start #inst"2020-09-05T00:00:00.000-00:00"
start+1d #inst"2020-09-06T00:00:00.000-00:00"
start+2d #inst"2020-09-07T00:00:00.000-00:00"]
(compute-simple-face-value amount interest-rate start start) => (roughly amount)
(compute-simple-face-value amount interest-rate start start+1d) => (roughly 1105.1670808)
(compute-simple-face-value amount interest-rate start start+2d) => (roughly 1221.3942766)
(compute-simple-face-value amount negative-interest-rate start start+2d) => (roughly 818.7250672)
(compute-simple-face-value amount 0 start start+2d) => (roughly amount)))
(data-layer/compute-simple-face-value amount interest-rate start start) => (roughly amount)
(data-layer/compute-simple-face-value amount interest-rate start start+1d) => (roughly 1105.1670808)
(data-layer/compute-simple-face-value amount interest-rate start start+2d) => (roughly 1221.3942766)
(data-layer/compute-simple-face-value amount negative-interest-rate start start+2d) => (roughly 818.7250672)
(data-layer/compute-simple-face-value amount 0 start start+2d) => (roughly amount)))
(fact "split-interest-rates"
(let [d-1d #inst"2020-09-04T00:00:00.000-00:00"
d-½d #inst"2020-09-04T12:00:00.000-00:00"
@@ -225,11 +227,11 @@
d+3d #inst"2020-09-08T00:00:00.000-00:00"
d+3½d #inst"2020-09-08T12:00:00.000-00:00";;
interest-rates [[10 d] [15 d+1d] [20 d+2d]]]
(split-interest-rates interest-rates d+½d d+3d) => [[10 d+½d d+1d] [15 d+1d d+2d] [20 d+2d d+3d]]
(split-interest-rates interest-rates d+3d d+3½d) => [[20 d+3d d+3½d]]
(split-interest-rates interest-rates d-1d d-½d) => [[0 d-1d d-½d]]
(split-interest-rates interest-rates d d+½d) => [[10 d d+½d]]
(split-interest-rates interest-rates d+2½d d+2½d) => [[20 d+2½d d+2½d]]))
(data-layer/split-interest-rates interest-rates d+½d d+3d) => [[10 d+½d d+1d] [15 d+1d d+2d] [20 d+2d d+3d]]
(data-layer/split-interest-rates interest-rates d+3d d+3½d) => [[20 d+3d d+3½d]]
(data-layer/split-interest-rates interest-rates d-1d d-½d) => [[0 d-1d d-½d]]
(data-layer/split-interest-rates interest-rates d d+½d) => [[10 d d+½d]]
(data-layer/split-interest-rates interest-rates d+2½d d+2½d) => [[20 d+2½d d+2½d]]))
(fact "compute-face-value"
(let [d-1d #inst"2020-09-04T00:00:00.000-00:00"
d-½d #inst"2020-09-04T12:00:00.000-00:00"
@@ -243,15 +245,15 @@
d+3½d #inst"2020-09-08T12:00:00.000-00:00"
amount 10000000
interest-rates [[10 d] [15 d+1d] [20 d+2d]]]
(compute-face-value amount interest-rates d+½d d+½d) => amount
(compute-face-value amount interest-rates d-1d d-½d) => amount
(compute-face-value amount interest-rates d-1d d+3d) => 10045101))
(data-layer/compute-face-value amount interest-rates d+½d d+½d) => amount
(data-layer/compute-face-value amount interest-rates d-1d d-½d) => amount
(data-layer/compute-face-value amount interest-rates d-1d d+3d) => 10045101))
(fact "we had bugs... we need to fix them"
(let [deposit-date #inst"2020-09-09T18:49:47.205-00:00"
value-date #inst"2020-09-09T18:52:56.760-00:00"
amount 105402100
interest-rates (list [1000 #inst "2020-09-09T18:47:34.152-00:00"])]
(compute-face-value amount interest-rates deposit-date value-date) => 105424060)))
(data-layer/compute-face-value amount interest-rates deposit-date value-date) => 105424060)))
;; 4. transfer sec from one account to the other.