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

     1  package goquery
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func BenchmarkIs(b *testing.B) {
     8  	var y bool
     9  
    10  	b.StopTimer()
    11  	sel := DocW().Find("li")
    12  	b.StartTimer()
    13  	for i := 0; i < b.N; i++ {
    14  		y = sel.Is(".toclevel-2")
    15  	}
    16  	b.Logf("Is=%v", y)
    17  }
    18  
    19  func BenchmarkIsPositional(b *testing.B) {
    20  	var y bool
    21  
    22  	b.StopTimer()
    23  	sel := DocW().Find("li")
    24  	b.StartTimer()
    25  	for i := 0; i < b.N; i++ {
    26  		y = sel.Is("li:nth-child(2)")
    27  	}
    28  	b.Logf("IsPositional=%v", y)
    29  }
    30  
    31  func BenchmarkIsFunction(b *testing.B) {
    32  	var y bool
    33  
    34  	b.StopTimer()
    35  	sel := DocW().Find(".toclevel-1")
    36  	f := func(i int, s *Selection) bool {
    37  		return i == 8
    38  	}
    39  	b.StartTimer()
    40  	for i := 0; i < b.N; i++ {
    41  		y = sel.IsFunction(f)
    42  	}
    43  	b.Logf("IsFunction=%v", y)
    44  }
    45  
    46  func BenchmarkIsSelection(b *testing.B) {
    47  	var y bool
    48  
    49  	b.StopTimer()
    50  	sel := DocW().Find("li")
    51  	sel2 := DocW().Find(".toclevel-2")
    52  	b.StartTimer()
    53  	for i := 0; i < b.N; i++ {
    54  		y = sel.IsSelection(sel2)
    55  	}
    56  	b.Logf("IsSelection=%v", y)
    57  }
    58  
    59  func BenchmarkIsNodes(b *testing.B) {
    60  	var y bool
    61  
    62  	b.StopTimer()
    63  	sel := DocW().Find("li")
    64  	sel2 := DocW().Find(".toclevel-2")
    65  	nodes := sel2.Nodes
    66  	b.StartTimer()
    67  	for i := 0; i < b.N; i++ {
    68  		y = sel.IsNodes(nodes...)
    69  	}
    70  	b.Logf("IsNodes=%v", y)
    71  }
    72  
    73  func BenchmarkHasClass(b *testing.B) {
    74  	var y bool
    75  
    76  	b.StopTimer()
    77  	sel := DocW().Find("span")
    78  	b.StartTimer()
    79  	for i := 0; i < b.N; i++ {
    80  		y = sel.HasClass("official")
    81  	}
    82  	b.Logf("HasClass=%v", y)
    83  }
    84  
    85  func BenchmarkContains(b *testing.B) {
    86  	var y bool
    87  
    88  	b.StopTimer()
    89  	sel := DocW().Find("span.url")
    90  	sel2 := DocW().Find("a[rel=\"nofollow\"]")
    91  	node := sel2.Nodes[0]
    92  	b.StartTimer()
    93  	for i := 0; i < b.N; i++ {
    94  		y = sel.Contains(node)
    95  	}
    96  	b.Logf("Contains=%v", y)
    97  }