example_test.go raw
1 package util_test
2
3 import (
4 "fmt"
5 "github.com/p9c/p9/pkg/amt"
6 "math"
7 )
8
9 func ExampleAmount() {
10 a := amt.Amount(0)
11 fmt.Println("Zero Satoshi:", a)
12 a = amt.Amount(1e8)
13 fmt.Println("100,000,000 Satoshis:", a)
14 a = amt.Amount(1e5)
15 fmt.Println("100,000 Satoshis:", a)
16 // Output:
17 // Zero Satoshi: 0 DUO
18 // 100,000,000 Satoshis: 1 DUO
19 // 100,000 Satoshis: 0.001 DUO
20 }
21 func ExampleNewAmount() {
22 amountOne, e := amt.NewAmount(1)
23 if e != nil {
24 fmt.Println(e)
25 return
26 }
27 fmt.Println(amountOne) // Output 1
28 amountFraction, e := amt.NewAmount(0.01234567)
29 if e != nil {
30 fmt.Println(e)
31 return
32 }
33 fmt.Println(amountFraction) // Output 2
34 amountZero, e := amt.NewAmount(0)
35 if e != nil {
36 fmt.Println(e)
37 return
38 }
39 fmt.Println(amountZero) // Output 3
40 amountNaN, e := amt.NewAmount(math.NaN())
41 if e != nil {
42 fmt.Println(e)
43 return
44 }
45 fmt.Println(amountNaN) // Output 4
46 // Output: 1 DUO
47 // 0.01234567 DUO
48 // 0 DUO
49 // invalid bitcoin amount
50 }
51 func ExampleAmount_unitConversions() {
52 amount := amt.Amount(44433322211100)
53 fmt.Println("Satoshi to kDUO:", amount.Format(amt.KiloDUO))
54 fmt.Println("Satoshi to DUO:", amount)
55 fmt.Println("Satoshi to MilliDUO:", amount.Format(amt.MilliDUO))
56 fmt.Println("Satoshi to MicroDUO:", amount.Format(amt.MicroDUO))
57 fmt.Println("Satoshi to Satoshi:", amount.Format(amt.Satoshi))
58 // Output:
59 // Satoshi to kDUO: 444.333222111 kDUO
60 // Satoshi to DUO: 444333.222111 DUO
61 // Satoshi to MilliDUO: 444333222.111 mDUO
62 // Satoshi to MicroDUO: 444333222111 μDUO
63 // Satoshi to Satoshi: 44433322211100 Satoshi
64 }
65