gopkg.in/rethinkdb/rethinkdb-go.v6@v6.2.2/internal/integration/reql_tests/reql_match_test.go (about)

     1  // Code generated by gen_tests.py and process_polyglot.py.
     2  // Do not edit this file directly.
     3  // The template for this file is located at:
     4  // ../template.go.tpl
     5  package reql_tests
     6  
     7  import (
     8  	"testing"
     9  	"time"
    10  
    11  	"github.com/stretchr/testify/suite"
    12  	r "gopkg.in/rethinkdb/rethinkdb-go.v6"
    13  	"gopkg.in/rethinkdb/rethinkdb-go.v6/internal/compare"
    14  )
    15  
    16  // Tests for match
    17  func TestMatchSuite(t *testing.T) {
    18  	suite.Run(t, new(MatchSuite))
    19  }
    20  
    21  type MatchSuite struct {
    22  	suite.Suite
    23  
    24  	session *r.Session
    25  }
    26  
    27  func (suite *MatchSuite) SetupTest() {
    28  	suite.T().Log("Setting up MatchSuite")
    29  	// Use imports to prevent errors
    30  	_ = time.Time{}
    31  	_ = compare.AnythingIsFine
    32  
    33  	session, err := r.Connect(r.ConnectOpts{
    34  		Address: url,
    35  	})
    36  	suite.Require().NoError(err, "Error returned when connecting to server")
    37  	suite.session = session
    38  
    39  	r.DBDrop("test").Exec(suite.session)
    40  	err = r.DBCreate("test").Exec(suite.session)
    41  	suite.Require().NoError(err)
    42  	err = r.DB("test").Wait().Exec(suite.session)
    43  	suite.Require().NoError(err)
    44  
    45  	r.DB("test").TableDrop("tbl").Exec(suite.session)
    46  	err = r.DB("test").TableCreate("tbl").Exec(suite.session)
    47  	suite.Require().NoError(err)
    48  	err = r.DB("test").Table("tbl").Wait().Exec(suite.session)
    49  	suite.Require().NoError(err)
    50  }
    51  
    52  func (suite *MatchSuite) TearDownSuite() {
    53  	suite.T().Log("Tearing down MatchSuite")
    54  
    55  	if suite.session != nil {
    56  		r.DB("rethinkdb").Table("_debug_scratch").Delete().Exec(suite.session)
    57  		r.DB("test").TableDrop("tbl").Exec(suite.session)
    58  		r.DBDrop("test").Exec(suite.session)
    59  
    60  		suite.session.Close()
    61  	}
    62  }
    63  
    64  func (suite *MatchSuite) TestCases() {
    65  	suite.T().Log("Running MatchSuite: Tests for match")
    66  
    67  	tbl := r.DB("test").Table("tbl")
    68  	_ = tbl // Prevent any noused variable errors
    69  
    70  	{
    71  		// match.yaml line #4
    72  		/* ({'str':'bcde','groups':[null,{'start':2,'str':'cde','end':5}],'start':1,'end':5}) */
    73  		var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"str": "bcde", "groups": []interface{}{nil, map[interface{}]interface{}{"start": 2, "str": "cde", "end": 5}}, "start": 1, "end": 5}
    74  		/* r.expr("abcdefg").match("a(b.e)|b(c.e)") */
    75  
    76  		suite.T().Log("About to run line #4: r.Expr('abcdefg').Match('a(b.e)|b(c.e)')")
    77  
    78  		runAndAssert(suite.Suite, expected_, r.Expr("abcdefg").Match("a(b.e)|b(c.e)"), suite.session, r.RunOpts{
    79  			GeometryFormat: "raw",
    80  			GroupFormat:    "map",
    81  		})
    82  		suite.T().Log("Finished running line #4")
    83  	}
    84  
    85  	{
    86  		// match.yaml line #6
    87  		/* (null) */
    88  		var expected_ interface{} = nil
    89  		/* r.expr("abcdefg").match("a(b.e)|B(c.e)") */
    90  
    91  		suite.T().Log("About to run line #6: r.Expr('abcdefg').Match('a(b.e)|B(c.e)')")
    92  
    93  		runAndAssert(suite.Suite, expected_, r.Expr("abcdefg").Match("a(b.e)|B(c.e)"), suite.session, r.RunOpts{
    94  			GeometryFormat: "raw",
    95  			GroupFormat:    "map",
    96  		})
    97  		suite.T().Log("Finished running line #6")
    98  	}
    99  
   100  	{
   101  		// match.yaml line #8
   102  		/* ({'str':'bcde','groups':[null,{'start':2,'str':'cde','end':5}],'start':1,'end':5}) */
   103  		var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"str": "bcde", "groups": []interface{}{nil, map[interface{}]interface{}{"start": 2, "str": "cde", "end": 5}}, "start": 1, "end": 5}
   104  		/* r.expr("abcdefg").match("(?i)a(b.e)|B(c.e)") */
   105  
   106  		suite.T().Log("About to run line #8: r.Expr('abcdefg').Match('(?i)a(b.e)|B(c.e)')")
   107  
   108  		runAndAssert(suite.Suite, expected_, r.Expr("abcdefg").Match("(?i)a(b.e)|B(c.e)"), suite.session, r.RunOpts{
   109  			GeometryFormat: "raw",
   110  			GroupFormat:    "map",
   111  		})
   112  		suite.T().Log("Finished running line #8")
   113  	}
   114  
   115  	{
   116  		// match.yaml line #12
   117  		/* (["aca", "ada"]) */
   118  		var expected_ []interface{} = []interface{}{"aca", "ada"}
   119  		/* r.expr(["aba", "aca", "ada", "aea"]).filter(lambda row:row.match("a(.)a")['groups'][0]['str'].match("[cd]")) */
   120  
   121  		suite.T().Log("About to run line #12: r.Expr([]interface{}{'aba', 'aca', 'ada', 'aea'}).Filter(func(row r.Term) interface{} { return row.Match('a(.)a').AtIndex('groups').AtIndex(0).AtIndex('str').Match('[cd]')})")
   122  
   123  		runAndAssert(suite.Suite, expected_, r.Expr([]interface{}{"aba", "aca", "ada", "aea"}).Filter(func(row r.Term) interface{} {
   124  			return row.Match("a(.)a").AtIndex("groups").AtIndex(0).AtIndex("str").Match("[cd]")
   125  		}), suite.session, r.RunOpts{
   126  			GeometryFormat: "raw",
   127  			GroupFormat:    "map",
   128  		})
   129  		suite.T().Log("Finished running line #12")
   130  	}
   131  
   132  	{
   133  		// match.yaml line #16
   134  		/* ({'deleted':0,'replaced':0,'unchanged':0,'errors':0,'skipped':0,'inserted':3}) */
   135  		var expected_ map[interface{}]interface{} = map[interface{}]interface{}{"deleted": 0, "replaced": 0, "unchanged": 0, "errors": 0, "skipped": 0, "inserted": 3}
   136  		/* tbl.insert([{'id':0,'a':'abc'},{'id':1,'a':'ab'},{'id':2,'a':'bc'}]) */
   137  
   138  		suite.T().Log("About to run line #16: tbl.Insert([]interface{}{map[interface{}]interface{}{'id': 0, 'a': 'abc', }, map[interface{}]interface{}{'id': 1, 'a': 'ab', }, map[interface{}]interface{}{'id': 2, 'a': 'bc', }})")
   139  
   140  		runAndAssert(suite.Suite, expected_, tbl.Insert([]interface{}{map[interface{}]interface{}{"id": 0, "a": "abc"}, map[interface{}]interface{}{"id": 1, "a": "ab"}, map[interface{}]interface{}{"id": 2, "a": "bc"}}), suite.session, r.RunOpts{
   141  			GeometryFormat: "raw",
   142  			GroupFormat:    "map",
   143  		})
   144  		suite.T().Log("Finished running line #16")
   145  	}
   146  
   147  	{
   148  		// match.yaml line #20
   149  		/* ([{'id':0,'a':'abc'},{'id':1,'a':'ab'},{'id':2,'a':'bc'}]) */
   150  		var expected_ []interface{} = []interface{}{map[interface{}]interface{}{"id": 0, "a": "abc"}, map[interface{}]interface{}{"id": 1, "a": "ab"}, map[interface{}]interface{}{"id": 2, "a": "bc"}}
   151  		/* tbl.filter(lambda row:row['a'].match('b')).order_by('id') */
   152  
   153  		suite.T().Log("About to run line #20: tbl.Filter(func(row r.Term) interface{} { return row.AtIndex('a').Match('b')}).OrderBy('id')")
   154  
   155  		runAndAssert(suite.Suite, expected_, tbl.Filter(func(row r.Term) interface{} { return row.AtIndex("a").Match("b") }).OrderBy("id"), suite.session, r.RunOpts{
   156  			GeometryFormat: "raw",
   157  			GroupFormat:    "map",
   158  		})
   159  		suite.T().Log("Finished running line #20")
   160  	}
   161  
   162  	{
   163  		// match.yaml line #24
   164  		/* ([{'id':0,'a':'abc'},{'id':1,'a':'ab'}]) */
   165  		var expected_ []interface{} = []interface{}{map[interface{}]interface{}{"id": 0, "a": "abc"}, map[interface{}]interface{}{"id": 1, "a": "ab"}}
   166  		/* tbl.filter(lambda row:row['a'].match('ab')).order_by('id') */
   167  
   168  		suite.T().Log("About to run line #24: tbl.Filter(func(row r.Term) interface{} { return row.AtIndex('a').Match('ab')}).OrderBy('id')")
   169  
   170  		runAndAssert(suite.Suite, expected_, tbl.Filter(func(row r.Term) interface{} { return row.AtIndex("a").Match("ab") }).OrderBy("id"), suite.session, r.RunOpts{
   171  			GeometryFormat: "raw",
   172  			GroupFormat:    "map",
   173  		})
   174  		suite.T().Log("Finished running line #24")
   175  	}
   176  
   177  	{
   178  		// match.yaml line #28
   179  		/* ([{'id':1,'a':'ab'}]) */
   180  		var expected_ []interface{} = []interface{}{map[interface{}]interface{}{"id": 1, "a": "ab"}}
   181  		/* tbl.filter(lambda row:row['a'].match('ab$')).order_by('id') */
   182  
   183  		suite.T().Log("About to run line #28: tbl.Filter(func(row r.Term) interface{} { return row.AtIndex('a').Match('ab$')}).OrderBy('id')")
   184  
   185  		runAndAssert(suite.Suite, expected_, tbl.Filter(func(row r.Term) interface{} { return row.AtIndex("a").Match("ab$") }).OrderBy("id"), suite.session, r.RunOpts{
   186  			GeometryFormat: "raw",
   187  			GroupFormat:    "map",
   188  		})
   189  		suite.T().Log("Finished running line #28")
   190  	}
   191  
   192  	{
   193  		// match.yaml line #32
   194  		/* ([]) */
   195  		var expected_ []interface{} = []interface{}{}
   196  		/* tbl.filter(lambda row:row['a'].match('^b$')).order_by('id') */
   197  
   198  		suite.T().Log("About to run line #32: tbl.Filter(func(row r.Term) interface{} { return row.AtIndex('a').Match('^b$')}).OrderBy('id')")
   199  
   200  		runAndAssert(suite.Suite, expected_, tbl.Filter(func(row r.Term) interface{} { return row.AtIndex("a").Match("^b$") }).OrderBy("id"), suite.session, r.RunOpts{
   201  			GeometryFormat: "raw",
   202  			GroupFormat:    "map",
   203  		})
   204  		suite.T().Log("Finished running line #32")
   205  	}
   206  
   207  	{
   208  		// match.yaml line #36
   209  		/* err("ReqlQueryLogicError", "Error in regexp `ab\\9` (portion `\\9`): invalid escape sequence: \\9", []) */
   210  		var expected_ Err = err("ReqlQueryLogicError", "Error in regexp `ab\\9` (portion `\\9`): invalid escape sequence: \\9")
   211  		/* r.expr("").match("ab\\9") */
   212  
   213  		suite.T().Log("About to run line #36: r.Expr('').Match('ab\\\\9')")
   214  
   215  		runAndAssert(suite.Suite, expected_, r.Expr("").Match("ab\\9"), suite.session, r.RunOpts{
   216  			GeometryFormat: "raw",
   217  			GroupFormat:    "map",
   218  		})
   219  		suite.T().Log("Finished running line #36")
   220  	}
   221  }