github.com/insionng/yougam@v0.0.0-20170714101924-2bc18d833463/libraries/goquery/bench_expand_test.go (about)

     1  package goquery
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func BenchmarkAdd(b *testing.B) {
     8  	var n int
     9  
    10  	b.StopTimer()
    11  	sel := DocB().Find("dd")
    12  	b.StartTimer()
    13  	for i := 0; i < b.N; i++ {
    14  		if n == 0 {
    15  			n = sel.Add("h2[title]").Length()
    16  		} else {
    17  			sel.Add("h2[title]")
    18  		}
    19  	}
    20  	b.Logf("Add=%d", n)
    21  }
    22  
    23  func BenchmarkAddSelection(b *testing.B) {
    24  	var n int
    25  
    26  	b.StopTimer()
    27  	sel := DocB().Find("dd")
    28  	sel2 := DocB().Find("h2[title]")
    29  	b.StartTimer()
    30  	for i := 0; i < b.N; i++ {
    31  		if n == 0 {
    32  			n = sel.AddSelection(sel2).Length()
    33  		} else {
    34  			sel.AddSelection(sel2)
    35  		}
    36  	}
    37  	b.Logf("AddSelection=%d", n)
    38  }
    39  
    40  func BenchmarkAddNodes(b *testing.B) {
    41  	var n int
    42  
    43  	b.StopTimer()
    44  	sel := DocB().Find("dd")
    45  	sel2 := DocB().Find("h2[title]")
    46  	nodes := sel2.Nodes
    47  	b.StartTimer()
    48  	for i := 0; i < b.N; i++ {
    49  		if n == 0 {
    50  			n = sel.AddNodes(nodes...).Length()
    51  		} else {
    52  			sel.AddNodes(nodes...)
    53  		}
    54  	}
    55  	b.Logf("AddNodes=%d", n)
    56  }
    57  
    58  func BenchmarkAndSelf(b *testing.B) {
    59  	var n int
    60  
    61  	b.StopTimer()
    62  	sel := DocB().Find("dd").Parent()
    63  	b.StartTimer()
    64  	for i := 0; i < b.N; i++ {
    65  		if n == 0 {
    66  			n = sel.AndSelf().Length()
    67  		} else {
    68  			sel.AndSelf()
    69  		}
    70  	}
    71  	b.Logf("AndSelf=%d", n)
    72  }