...

Source file src/github.com/PuerkitoBio/goquery/bench_expand_test.go

Documentation: github.com/PuerkitoBio/goquery

     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  	if n != 43 {
    21  		b.Fatalf("want 43, got %d", n)
    22  	}
    23  }
    24  
    25  func BenchmarkAddSelection(b *testing.B) {
    26  	var n int
    27  
    28  	b.StopTimer()
    29  	sel := DocB().Find("dd")
    30  	sel2 := DocB().Find("h2[title]")
    31  	b.StartTimer()
    32  	for i := 0; i < b.N; i++ {
    33  		if n == 0 {
    34  			n = sel.AddSelection(sel2).Length()
    35  		} else {
    36  			sel.AddSelection(sel2)
    37  		}
    38  	}
    39  	if n != 43 {
    40  		b.Fatalf("want 43, got %d", n)
    41  	}
    42  }
    43  
    44  func BenchmarkAddNodes(b *testing.B) {
    45  	var n int
    46  
    47  	b.StopTimer()
    48  	sel := DocB().Find("dd")
    49  	sel2 := DocB().Find("h2[title]")
    50  	nodes := sel2.Nodes
    51  	b.StartTimer()
    52  	for i := 0; i < b.N; i++ {
    53  		if n == 0 {
    54  			n = sel.AddNodes(nodes...).Length()
    55  		} else {
    56  			sel.AddNodes(nodes...)
    57  		}
    58  	}
    59  	if n != 43 {
    60  		b.Fatalf("want 43, got %d", n)
    61  	}
    62  }
    63  
    64  func BenchmarkAddNodesBig(b *testing.B) {
    65  	var n int
    66  
    67  	doc := DocW()
    68  	sel := doc.Find("li")
    69  	// make nodes > 1000
    70  	nodes := sel.Nodes
    71  	nodes = append(nodes, nodes...)
    72  	nodes = append(nodes, nodes...)
    73  	sel = doc.Find("xyz")
    74  	b.ResetTimer()
    75  
    76  	for i := 0; i < b.N; i++ {
    77  		if n == 0 {
    78  			n = sel.AddNodes(nodes...).Length()
    79  		} else {
    80  			sel.AddNodes(nodes...)
    81  		}
    82  	}
    83  	if n != 373 {
    84  		b.Fatalf("want 373, got %d", n)
    85  	}
    86  }
    87  
    88  func BenchmarkAndSelf(b *testing.B) {
    89  	var n int
    90  
    91  	b.StopTimer()
    92  	sel := DocB().Find("dd").Parent()
    93  	b.StartTimer()
    94  	for i := 0; i < b.N; i++ {
    95  		if n == 0 {
    96  			n = sel.AndSelf().Length()
    97  		} else {
    98  			sel.AndSelf()
    99  		}
   100  	}
   101  	if n != 44 {
   102  		b.Fatalf("want 44, got %d", n)
   103  	}
   104  }
   105  

View as plain text