github.com/xojoc/bitset@v0.0.0-20200116205324-73c7a76a52a4/bench_test.go (about)

     1  // Written by http://xojoc.pw. Public Domain.
     2  
     3  package bitset
     4  
     5  import (
     6  	"math/big"
     7  	"testing"
     8  )
     9  
    10  func Benchmark(b *testing.B) {
    11  }
    12  
    13  func BenchmarkClone(b *testing.B) {
    14  	s := &BitSet{}
    15  	s.Set(1000 * 100 * 1000)
    16  	for n := 0; n < b.N; n++ {
    17  		n := s.Clone()
    18  		n.Get(0)
    19  	}
    20  }
    21  func BenchmarkSet(b *testing.B) {
    22  	len := 1000
    23  	s := &BitSet{}
    24  	for n := 0; n < b.N; n++ {
    25  		for i := 0; i < len; i++ {
    26  			s.Set(i)
    27  		}
    28  	}
    29  }
    30  func BenchmarkSetBig(b *testing.B) {
    31  	len := 1000
    32  	s := big.NewInt(0)
    33  	for n := 0; n < b.N; n++ {
    34  		for i := 0; i < len; i++ {
    35  			s.SetBit(s, i, 1)
    36  		}
    37  	}
    38  }
    39  func BenchmarkSetHigh(b *testing.B) {
    40  	s := &BitSet{}
    41  	i := 1
    42  	for n := 0; n < b.N; n++ {
    43  		s.Set(100 * 1000 * 1000 * i)
    44  		i++
    45  	}
    46  }
    47  func BenchmarkSetRange(b *testing.B) {
    48  	s := &BitSet{}
    49  	s.SetRange(0, 100*1000*1000)
    50  }
    51  func BenchmarkClearRange(b *testing.B) {
    52  	s := &BitSet{}
    53  	s.SetRange(0, 100*1000*1000)
    54  	s.ClearRange(0, 100*1000*1000)
    55  }
    56  func BenchmarkToggleRange(b *testing.B) {
    57  	s := &BitSet{}
    58  	s.SetRange(50*1000*1000, 100*1000*1000)
    59  	s.ToggleRange(0, 100*1000*1000)
    60  }
    61  func BenchmarkGetEmpty(b *testing.B) {
    62  	s := &BitSet{}
    63  	len := 1000 * 1000
    64  	for n := 0; n < b.N; n++ {
    65  		for i := 0; i < len; i++ {
    66  			s.Get(i)
    67  		}
    68  	}
    69  }
    70  func BenchmarkGetEmptyBig(b *testing.B) {
    71  	s := big.NewInt(0)
    72  	len := 1000 * 1000
    73  	s.SetBit(s, len-1, 1)
    74  	for n := 0; n < b.N; n++ {
    75  		for i := 0; i < len; i++ {
    76  			s.Bit(i)
    77  		}
    78  	}
    79  }
    80  
    81  /*
    82  func BenchmarkUnion(b *testing.B) {
    83  	a := New(1000)
    84  	c := New(1000)
    85  	for n := 0; n < b.N; n++ {
    86  		a.Union(c)
    87  	}
    88  }
    89  
    90  func BenchmarkUnionBig(b *testing.B) {
    91  	len := 1000
    92  	a := big.NewInt(0)
    93  	a.SetBit(a, len-1, 1)
    94  	c := big.NewInt(0)
    95  	c.SetBit(c, len-1, 1)
    96  	for n := 0; n < b.N; n++ {
    97  		a.Or(a, c)
    98  	}
    99  }
   100  
   101  func BenchmarkString(b *testing.B) {
   102  	a := New(100000)
   103  	for n := 0; n < b.N; n++ {
   104  		_ = a.String()
   105  	}
   106  }
   107  */