...

Source file src/github.com/gobwas/glob/match/row_test.go

Documentation: github.com/gobwas/glob/match

     1  package match
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  )
     7  
     8  func TestRowIndex(t *testing.T) {
     9  	for id, test := range []struct {
    10  		matchers Matchers
    11  		length   int
    12  		fixture  string
    13  		index    int
    14  		segments []int
    15  	}{
    16  		{
    17  			Matchers{
    18  				NewText("abc"),
    19  				NewText("def"),
    20  				NewSingle(nil),
    21  			},
    22  			7,
    23  			"qweabcdefghij",
    24  			3,
    25  			[]int{7},
    26  		},
    27  		{
    28  			Matchers{
    29  				NewText("abc"),
    30  				NewText("def"),
    31  				NewSingle(nil),
    32  			},
    33  			7,
    34  			"abcd",
    35  			-1,
    36  			nil,
    37  		},
    38  	} {
    39  		p := NewRow(test.length, test.matchers...)
    40  		index, segments := p.Index(test.fixture)
    41  		if index != test.index {
    42  			t.Errorf("#%d unexpected index: exp: %d, act: %d", id, test.index, index)
    43  		}
    44  		if !reflect.DeepEqual(segments, test.segments) {
    45  			t.Errorf("#%d unexpected segments: exp: %v, act: %v", id, test.segments, segments)
    46  		}
    47  	}
    48  }
    49  
    50  func BenchmarkRowIndex(b *testing.B) {
    51  	m := NewRow(
    52  		7,
    53  		Matchers{
    54  			NewText("abc"),
    55  			NewText("def"),
    56  			NewSingle(nil),
    57  		}...,
    58  	)
    59  
    60  	for i := 0; i < b.N; i++ {
    61  		_, s := m.Index(bench_pattern)
    62  		releaseSegments(s)
    63  	}
    64  }
    65  
    66  func BenchmarkIndexRowParallel(b *testing.B) {
    67  	m := NewRow(
    68  		7,
    69  		Matchers{
    70  			NewText("abc"),
    71  			NewText("def"),
    72  			NewSingle(nil),
    73  		}...,
    74  	)
    75  
    76  	b.RunParallel(func(pb *testing.PB) {
    77  		for pb.Next() {
    78  			_, s := m.Index(bench_pattern)
    79  			releaseSegments(s)
    80  		}
    81  	})
    82  }
    83  

View as plain text