aboutsummaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorTaylor Gerring <taylor.gerring@gmail.com>2015-03-22 20:35:13 +0800
committerTaylor Gerring <taylor.gerring@gmail.com>2015-03-22 20:35:13 +0800
commit82a41a198e3ac217e1c349c7300b1fb28e4982ab (patch)
tree4233d11352539c26e4aa9f2c0a869673615be291 /common
parent08b21acff1ca397e775e926e0f9a96deaa9820fd (diff)
downloadgo-tangerine-82a41a198e3ac217e1c349c7300b1fb28e4982ab.tar
go-tangerine-82a41a198e3ac217e1c349c7300b1fb28e4982ab.tar.gz
go-tangerine-82a41a198e3ac217e1c349c7300b1fb28e4982ab.tar.bz2
go-tangerine-82a41a198e3ac217e1c349c7300b1fb28e4982ab.tar.lz
go-tangerine-82a41a198e3ac217e1c349c7300b1fb28e4982ab.tar.xz
go-tangerine-82a41a198e3ac217e1c349c7300b1fb28e4982ab.tar.zst
go-tangerine-82a41a198e3ac217e1c349c7300b1fb28e4982ab.zip
Move CurrencyToString to size
Diffstat (limited to 'common')
-rw-r--r--common/common.go57
-rw-r--r--common/common_test.go33
-rw-r--r--common/size.go62
-rw-r--r--common/size_test.go34
4 files changed, 95 insertions, 91 deletions
diff --git a/common/common.go b/common/common.go
index a61b866c9..9045151f5 100644
--- a/common/common.go
+++ b/common/common.go
@@ -76,63 +76,6 @@ func WindonizePath(path string) string {
return path
}
-// The different number of units
-var (
- Douglas = BigPow(10, 42)
- Einstein = BigPow(10, 21)
- Ether = BigPow(10, 18)
- Finney = BigPow(10, 15)
- Szabo = BigPow(10, 12)
- Shannon = BigPow(10, 9)
- Babbage = BigPow(10, 6)
- Ada = BigPow(10, 3)
- Wei = big.NewInt(1)
-)
-
-//
-// Currency to string
-// Returns a string representing a human readable format
-func CurrencyToString(num *big.Int) string {
- var (
- fin *big.Int = num
- denom string = "Wei"
- )
-
- switch {
- case num.Cmp(Douglas) >= 0:
- fin = new(big.Int).Div(num, Douglas)
- denom = "Douglas"
- case num.Cmp(Einstein) >= 0:
- fin = new(big.Int).Div(num, Einstein)
- denom = "Einstein"
- case num.Cmp(Ether) >= 0:
- fin = new(big.Int).Div(num, Ether)
- denom = "Ether"
- case num.Cmp(Finney) >= 0:
- fin = new(big.Int).Div(num, Finney)
- denom = "Finney"
- case num.Cmp(Szabo) >= 0:
- fin = new(big.Int).Div(num, Szabo)
- denom = "Szabo"
- case num.Cmp(Shannon) >= 0:
- fin = new(big.Int).Div(num, Shannon)
- denom = "Shannon"
- case num.Cmp(Babbage) >= 0:
- fin = new(big.Int).Div(num, Babbage)
- denom = "Babbage"
- case num.Cmp(Ada) >= 0:
- fin = new(big.Int).Div(num, Ada)
- denom = "Ada"
- }
-
- // TODO add comment clarifying expected behavior
- if len(fin.String()) > 5 {
- return fmt.Sprintf("%sE%d %s", fin.String()[0:5], len(fin.String())-5, denom)
- }
-
- return fmt.Sprintf("%v %s", fin, denom)
-}
-
// Common big integers often used
var (
Big1 = big.NewInt(1)
diff --git a/common/common_test.go b/common/common_test.go
index 0fb5c56f0..a94dd1792 100644
--- a/common/common_test.go
+++ b/common/common_test.go
@@ -1,7 +1,6 @@
package common
import (
- "math/big"
"os"
checker "gopkg.in/check.v1"
@@ -34,35 +33,3 @@ func (s *CommonSuite) TestWindonziePath(c *checker.C) {
c.Assert(ressep, checker.Not(checker.Equals), "/")
}
}
-
-func (s *CommonSuite) TestCommon(c *checker.C) {
- douglas := CurrencyToString(BigPow(10, 43))
- einstein := CurrencyToString(BigPow(10, 22))
- ether := CurrencyToString(BigPow(10, 19))
- finney := CurrencyToString(BigPow(10, 16))
- szabo := CurrencyToString(BigPow(10, 13))
- shannon := CurrencyToString(BigPow(10, 10))
- babbage := CurrencyToString(BigPow(10, 7))
- ada := CurrencyToString(BigPow(10, 4))
- wei := CurrencyToString(big.NewInt(10))
-
- c.Assert(douglas, checker.Equals, "10 Douglas")
- c.Assert(einstein, checker.Equals, "10 Einstein")
- c.Assert(ether, checker.Equals, "10 Ether")
- c.Assert(finney, checker.Equals, "10 Finney")
- c.Assert(szabo, checker.Equals, "10 Szabo")
- c.Assert(shannon, checker.Equals, "10 Shannon")
- c.Assert(babbage, checker.Equals, "10 Babbage")
- c.Assert(ada, checker.Equals, "10 Ada")
- c.Assert(wei, checker.Equals, "10 Wei")
-}
-
-func (s *CommonSuite) TestLarge(c *checker.C) {
- douglaslarge := CurrencyToString(BigPow(100000000, 43))
- adalarge := CurrencyToString(BigPow(100000000, 4))
- weilarge := CurrencyToString(big.NewInt(100000000))
-
- c.Assert(douglaslarge, checker.Equals, "10000E298 Douglas")
- c.Assert(adalarge, checker.Equals, "10000E7 Einstein")
- c.Assert(weilarge, checker.Equals, "100 Babbage")
-}
diff --git a/common/size.go b/common/size.go
index 80a17279b..b5c0b0b3f 100644
--- a/common/size.go
+++ b/common/size.go
@@ -1,6 +1,9 @@
package common
-import "fmt"
+import (
+ "fmt"
+ "math/big"
+)
type StorageSize float64
@@ -13,3 +16,60 @@ func (self StorageSize) String() string {
return fmt.Sprintf("%.2f B", self)
}
}
+
+// The different number of units
+var (
+ Douglas = BigPow(10, 42)
+ Einstein = BigPow(10, 21)
+ Ether = BigPow(10, 18)
+ Finney = BigPow(10, 15)
+ Szabo = BigPow(10, 12)
+ Shannon = BigPow(10, 9)
+ Babbage = BigPow(10, 6)
+ Ada = BigPow(10, 3)
+ Wei = big.NewInt(1)
+)
+
+//
+// Currency to string
+// Returns a string representing a human readable format
+func CurrencyToString(num *big.Int) string {
+ var (
+ fin *big.Int = num
+ denom string = "Wei"
+ )
+
+ switch {
+ case num.Cmp(Douglas) >= 0:
+ fin = new(big.Int).Div(num, Douglas)
+ denom = "Douglas"
+ case num.Cmp(Einstein) >= 0:
+ fin = new(big.Int).Div(num, Einstein)
+ denom = "Einstein"
+ case num.Cmp(Ether) >= 0:
+ fin = new(big.Int).Div(num, Ether)
+ denom = "Ether"
+ case num.Cmp(Finney) >= 0:
+ fin = new(big.Int).Div(num, Finney)
+ denom = "Finney"
+ case num.Cmp(Szabo) >= 0:
+ fin = new(big.Int).Div(num, Szabo)
+ denom = "Szabo"
+ case num.Cmp(Shannon) >= 0:
+ fin = new(big.Int).Div(num, Shannon)
+ denom = "Shannon"
+ case num.Cmp(Babbage) >= 0:
+ fin = new(big.Int).Div(num, Babbage)
+ denom = "Babbage"
+ case num.Cmp(Ada) >= 0:
+ fin = new(big.Int).Div(num, Ada)
+ denom = "Ada"
+ }
+
+ // TODO add comment clarifying expected behavior
+ if len(fin.String()) > 5 {
+ return fmt.Sprintf("%sE%d %s", fin.String()[0:5], len(fin.String())-5, denom)
+ }
+
+ return fmt.Sprintf("%v %s", fin, denom)
+}
diff --git a/common/size_test.go b/common/size_test.go
index c90eabc26..1cbeff0a8 100644
--- a/common/size_test.go
+++ b/common/size_test.go
@@ -1,6 +1,8 @@
package common
import (
+ "math/big"
+
checker "gopkg.in/check.v1"
)
@@ -21,3 +23,35 @@ func (s *SizeSuite) TestStorageSizeString(c *checker.C) {
c.Assert(StorageSize(data2).String(), checker.Equals, exp2)
c.Assert(StorageSize(data3).String(), checker.Equals, exp3)
}
+
+func (s *CommonSuite) TestCommon(c *checker.C) {
+ douglas := CurrencyToString(BigPow(10, 43))
+ einstein := CurrencyToString(BigPow(10, 22))
+ ether := CurrencyToString(BigPow(10, 19))
+ finney := CurrencyToString(BigPow(10, 16))
+ szabo := CurrencyToString(BigPow(10, 13))
+ shannon := CurrencyToString(BigPow(10, 10))
+ babbage := CurrencyToString(BigPow(10, 7))
+ ada := CurrencyToString(BigPow(10, 4))
+ wei := CurrencyToString(big.NewInt(10))
+
+ c.Assert(douglas, checker.Equals, "10 Douglas")
+ c.Assert(einstein, checker.Equals, "10 Einstein")
+ c.Assert(ether, checker.Equals, "10 Ether")
+ c.Assert(finney, checker.Equals, "10 Finney")
+ c.Assert(szabo, checker.Equals, "10 Szabo")
+ c.Assert(shannon, checker.Equals, "10 Shannon")
+ c.Assert(babbage, checker.Equals, "10 Babbage")
+ c.Assert(ada, checker.Equals, "10 Ada")
+ c.Assert(wei, checker.Equals, "10 Wei")
+}
+
+func (s *CommonSuite) TestLarge(c *checker.C) {
+ douglaslarge := CurrencyToString(BigPow(100000000, 43))
+ adalarge := CurrencyToString(BigPow(100000000, 4))
+ weilarge := CurrencyToString(big.NewInt(100000000))
+
+ c.Assert(douglaslarge, checker.Equals, "10000E298 Douglas")
+ c.Assert(adalarge, checker.Equals, "10000E7 Einstein")
+ c.Assert(weilarge, checker.Equals, "100 Babbage")
+}