heisencoin 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/heisencoin.rb +2 -0
- data/tests/arbitrage.rb +12 -4
- data/tests/offer.rb +42 -0
- data/tests/trade.rb +49 -0
- metadata +5 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a517b7b9c3fcf114963652c00454aa5c5dcf6f26
|
|
4
|
+
data.tar.gz: 616a927a7ea8aee4b1d035871d5b18843b922215
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 42d4787b3c35d1b7bc4e02391c812a504c7aefd768be7d566b8afbba875337116544705d3c03f3e841621192cae4172655202a98fdb6137fc88148d34474ccb6
|
|
7
|
+
data.tar.gz: 3abe1f3032fbfd2f1999ef0e7727e17c82275ce8fb404a16ac52dcdc7aed8a3da657c0c223b510530eb76fe9b633d2130a01472292531cca6db83817c19aaddb
|
data/lib/heisencoin.rb
CHANGED
data/tests/arbitrage.rb
CHANGED
|
@@ -98,10 +98,18 @@ class TestMeme < Minitest::Test
|
|
|
98
98
|
|
|
99
99
|
it "should make all available trades" do
|
|
100
100
|
trades = @arby.trade_all(@arby.profitable_asks, @arby.profitable_bids)
|
|
101
|
-
trades.must_equal [ Trade.new(@ex2,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
Trade.new(@ex2,
|
|
101
|
+
trades.must_equal [ Trade.new({'from_offer' => Offer.from_array(@ex2, [13.4, 0.5]).to_simple,
|
|
102
|
+
'to_offer' => Offer.from_array(@ex1, [14.2, 0.5]).to_simple,
|
|
103
|
+
'quantity' => 0.5}),
|
|
104
|
+
Trade.new({'from_offer' => Offer.from_array(@ex2, [13.4, 0.5]).to_simple,
|
|
105
|
+
'to_offer' => Offer.from_array(@ex1, [14.2, 0.5]).to_simple,
|
|
106
|
+
'quantity' => 0.7}),
|
|
107
|
+
Trade.new({'from_offer' => Offer.from_array(@ex2, [13.4, 0.5]).to_simple,
|
|
108
|
+
'to_offer' => Offer.from_array(@ex1, [14.2, 0.5]).to_simple,
|
|
109
|
+
'quantity' => 0.20000000000000007}),
|
|
110
|
+
Trade.new({'from_offer' => Offer.from_array(@ex2, [13.4, 0.5]).to_simple,
|
|
111
|
+
'to_offer' => Offer.from_array(@ex1, [14.2, 0.5]).to_simple,
|
|
112
|
+
'quantity' => 0.9}) ]
|
|
105
113
|
end
|
|
106
114
|
|
|
107
115
|
it "should work" do
|
data/tests/offer.rb
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
require "minitest/autorun"
|
|
2
|
+
require "time"
|
|
3
|
+
require 'heisencoin'
|
|
4
|
+
|
|
5
|
+
class TestMeme < Minitest::Test
|
|
6
|
+
|
|
7
|
+
include Heisencoin
|
|
8
|
+
|
|
9
|
+
describe Heisencoin::Offer do
|
|
10
|
+
describe "when constructing an Offer" do
|
|
11
|
+
|
|
12
|
+
it "must start empty" do
|
|
13
|
+
offer = Offer.new
|
|
14
|
+
offer.quantity.must_equal nil
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
it "must load from a hash" do
|
|
18
|
+
params = {'exchange' => 'ex1',
|
|
19
|
+
'price' => 10,
|
|
20
|
+
'quantity' => 1.1}
|
|
21
|
+
offer = Offer.new(params)
|
|
22
|
+
offer.price.must_equal params['price']
|
|
23
|
+
offer.quantity.must_equal params['quantity']
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
describe "when deriving information" do
|
|
29
|
+
before do
|
|
30
|
+
@offer = Offer.new({'exchange' => 'ex1',
|
|
31
|
+
'price' => 10,
|
|
32
|
+
'quantity' => 1.1})
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
it "must calculate amount spent" do
|
|
36
|
+
@offer.cost(0.5).must_equal 5
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
end
|
|
42
|
+
end
|
data/tests/trade.rb
ADDED
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
require "minitest/autorun"
|
|
2
|
+
require "time"
|
|
3
|
+
require 'heisencoin'
|
|
4
|
+
|
|
5
|
+
class TestMeme < Minitest::Test
|
|
6
|
+
|
|
7
|
+
include Heisencoin
|
|
8
|
+
|
|
9
|
+
describe Heisencoin::Trade do
|
|
10
|
+
before do
|
|
11
|
+
@ex1 = Exchange.new({'name' =>'buylow'})
|
|
12
|
+
@offer1 = Offer.new({'exchange' => @ex1.to_simple,
|
|
13
|
+
'price' => 10,
|
|
14
|
+
'quantity' => 1})
|
|
15
|
+
@ex2 = Exchange.new({'name' =>'sellhigh'})
|
|
16
|
+
@offer2 = Offer.new({'exchange' => @ex2.to_simple,
|
|
17
|
+
'price' => 11,
|
|
18
|
+
'quantity' => 1})
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe "when constructing a Trade" do
|
|
22
|
+
|
|
23
|
+
it "must start empty" do
|
|
24
|
+
trade = Trade.new
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
describe "when deriving information" do
|
|
30
|
+
before do
|
|
31
|
+
@trade = Trade.new({'from_offer' => @offer1.to_simple,
|
|
32
|
+
'to_offer' => @offer2.to_simple,
|
|
33
|
+
'quantity' => 1.0})
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
it "must remember the offers" do
|
|
37
|
+
@trade.from_offer.must_equal @offer1
|
|
38
|
+
@trade.to_offer.must_equal @offer2
|
|
39
|
+
@trade.quantity.must_equal 1
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
it "must calculate amount spent" do
|
|
43
|
+
@trade.profit.must_equal 1
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
end
|
|
49
|
+
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: heisencoin
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.
|
|
4
|
+
version: 0.0.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Don Park
|
|
@@ -17,6 +17,8 @@ extensions: []
|
|
|
17
17
|
extra_rdoc_files: []
|
|
18
18
|
files:
|
|
19
19
|
- lib/heisencoin.rb
|
|
20
|
+
- tests/trade.rb
|
|
21
|
+
- tests/offer.rb
|
|
20
22
|
- tests/arbitrage.rb
|
|
21
23
|
homepage: https://github.com/cointhink/heisencoin
|
|
22
24
|
licenses:
|
|
@@ -43,4 +45,6 @@ signing_key:
|
|
|
43
45
|
specification_version: 4
|
|
44
46
|
summary: cryptocoin finance methods
|
|
45
47
|
test_files:
|
|
48
|
+
- tests/trade.rb
|
|
49
|
+
- tests/offer.rb
|
|
46
50
|
- tests/arbitrage.rb
|