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

     1  package goquery
     2  
     3  import (
     4  	"testing"
     5  )
     6  
     7  func BenchmarkFilter(b *testing.B) {
     8  	var n int
     9  
    10  	b.StopTimer()
    11  	sel := DocW().Find("li")
    12  	b.StartTimer()
    13  	for i := 0; i < b.N; i++ {
    14  		if n == 0 {
    15  			n = sel.Filter(".toclevel-1").Length()
    16  		} else {
    17  			sel.Filter(".toclevel-1")
    18  		}
    19  	}
    20  	b.Logf("Filter=%d", n)
    21  }
    22  
    23  func BenchmarkNot(b *testing.B) {
    24  	var n int
    25  
    26  	b.StopTimer()
    27  	sel := DocW().Find("li")
    28  	b.StartTimer()
    29  	for i := 0; i < b.N; i++ {
    30  		if n == 0 {
    31  			n = sel.Not(".toclevel-2").Length()
    32  		} else {
    33  			sel.Filter(".toclevel-2")
    34  		}
    35  	}
    36  	b.Logf("Not=%d", n)
    37  }
    38  
    39  func BenchmarkFilterFunction(b *testing.B) {
    40  	var n int
    41  
    42  	b.StopTimer()
    43  	sel := DocW().Find("li")
    44  	f := func(i int, s *Selection) bool {
    45  		return len(s.Get(0).Attr) > 0
    46  	}
    47  	b.StartTimer()
    48  	for i := 0; i < b.N; i++ {
    49  		if n == 0 {
    50  			n = sel.FilterFunction(f).Length()
    51  		} else {
    52  			sel.FilterFunction(f)
    53  		}
    54  	}
    55  	b.Logf("FilterFunction=%d", n)
    56  }
    57  
    58  func BenchmarkNotFunction(b *testing.B) {
    59  	var n int
    60  
    61  	b.StopTimer()
    62  	sel := DocW().Find("li")
    63  	f := func(i int, s *Selection) bool {
    64  		return len(s.Get(0).Attr) > 0
    65  	}
    66  	b.StartTimer()
    67  	for i := 0; i < b.N; i++ {
    68  		if n == 0 {
    69  			n = sel.NotFunction(f).Length()
    70  		} else {
    71  			sel.NotFunction(f)
    72  		}
    73  	}
    74  	b.Logf("NotFunction=%d", n)
    75  }
    76  
    77  func BenchmarkFilterNodes(b *testing.B) {
    78  	var n int
    79  
    80  	b.StopTimer()
    81  	sel := DocW().Find("li")
    82  	sel2 := DocW().Find(".toclevel-2")
    83  	nodes := sel2.Nodes
    84  	b.StartTimer()
    85  	for i := 0; i < b.N; i++ {
    86  		if n == 0 {
    87  			n = sel.FilterNodes(nodes...).Length()
    88  		} else {
    89  			sel.FilterNodes(nodes...)
    90  		}
    91  	}
    92  	b.Logf("FilterNodes=%d", n)
    93  }
    94  
    95  func BenchmarkNotNodes(b *testing.B) {
    96  	var n int
    97  
    98  	b.StopTimer()
    99  	sel := DocW().Find("li")
   100  	sel2 := DocW().Find(".toclevel-1")
   101  	nodes := sel2.Nodes
   102  	b.StartTimer()
   103  	for i := 0; i < b.N; i++ {
   104  		if n == 0 {
   105  			n = sel.NotNodes(nodes...).Length()
   106  		} else {
   107  			sel.NotNodes(nodes...)
   108  		}
   109  	}
   110  	b.Logf("NotNodes=%d", n)
   111  }
   112  
   113  func BenchmarkFilterSelection(b *testing.B) {
   114  	var n int
   115  
   116  	b.StopTimer()
   117  	sel := DocW().Find("li")
   118  	sel2 := DocW().Find(".toclevel-2")
   119  	b.StartTimer()
   120  	for i := 0; i < b.N; i++ {
   121  		if n == 0 {
   122  			n = sel.FilterSelection(sel2).Length()
   123  		} else {
   124  			sel.FilterSelection(sel2)
   125  		}
   126  	}
   127  	b.Logf("FilterSelection=%d", n)
   128  }
   129  
   130  func BenchmarkNotSelection(b *testing.B) {
   131  	var n int
   132  
   133  	b.StopTimer()
   134  	sel := DocW().Find("li")
   135  	sel2 := DocW().Find(".toclevel-1")
   136  	b.StartTimer()
   137  	for i := 0; i < b.N; i++ {
   138  		if n == 0 {
   139  			n = sel.NotSelection(sel2).Length()
   140  		} else {
   141  			sel.NotSelection(sel2)
   142  		}
   143  	}
   144  	b.Logf("NotSelection=%d", n)
   145  }
   146  
   147  func BenchmarkHas(b *testing.B) {
   148  	var n int
   149  
   150  	b.StopTimer()
   151  	sel := DocW().Find("h2")
   152  	b.StartTimer()
   153  	for i := 0; i < b.N; i++ {
   154  		if n == 0 {
   155  			n = sel.Has(".editsection").Length()
   156  		} else {
   157  			sel.Has(".editsection")
   158  		}
   159  	}
   160  	b.Logf("Has=%d", n)
   161  }
   162  
   163  func BenchmarkHasNodes(b *testing.B) {
   164  	var n int
   165  
   166  	b.StopTimer()
   167  	sel := DocW().Find("li")
   168  	sel2 := DocW().Find(".tocnumber")
   169  	nodes := sel2.Nodes
   170  	b.StartTimer()
   171  	for i := 0; i < b.N; i++ {
   172  		if n == 0 {
   173  			n = sel.HasNodes(nodes...).Length()
   174  		} else {
   175  			sel.HasNodes(nodes...)
   176  		}
   177  	}
   178  	b.Logf("HasNodes=%d", n)
   179  }
   180  
   181  func BenchmarkHasSelection(b *testing.B) {
   182  	var n int
   183  
   184  	b.StopTimer()
   185  	sel := DocW().Find("li")
   186  	sel2 := DocW().Find(".tocnumber")
   187  	b.StartTimer()
   188  	for i := 0; i < b.N; i++ {
   189  		if n == 0 {
   190  			n = sel.HasSelection(sel2).Length()
   191  		} else {
   192  			sel.HasSelection(sel2)
   193  		}
   194  	}
   195  	b.Logf("HasSelection=%d", n)
   196  }
   197  
   198  func BenchmarkEnd(b *testing.B) {
   199  	var n int
   200  
   201  	b.StopTimer()
   202  	sel := DocW().Find("li").Has(".tocnumber")
   203  	b.StartTimer()
   204  	for i := 0; i < b.N; i++ {
   205  		if n == 0 {
   206  			n = sel.End().Length()
   207  		} else {
   208  			sel.End()
   209  		}
   210  	}
   211  	b.Logf("End=%d", n)
   212  }