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