# Copyright 2021 The Go Authors. All rights reserved.
# Use of this source code is governed by a BSD-style
# license that can be found in the LICENSE file.
#
# This file contains test scripts for symbol search.

Same symbol appears multiple times in one package.
[symbol] symbol:Foo
Foo gopkg.in/foo.v1
FOO github.com/julieqiu/api-demo
FoO github.com/julieqiu/api-demo
Foo github.com/julieqiu/api-demo

Prefer symbols by popularity, then alphabetically, Add
[symbol] symbol:Add
Add math/bits

Prefer symbols by package path, then symbol name
# TODO: derank fields and methods; log.Logger.Writer should not
# appear in this list.
[symbol] symbol:Writer
Writer archive/tar
Writer archive/zip
Writer bufio
Writer compress/flate
Writer compress/gzip
Writer compress/zlib
Writer encoding/csv
Writer io
Writer log

Search for package path element and symbol.
[symbol] symbol:math Add
Add math/bits

Search for package path element with slash and symbol.
[symbol] symbol:math/big Float
Float math/big

Search for <package path>.<symbol>.
[symbol] symbol:math/big.Float
Float math/big

Search for <package name>.<symbol>.
[symbol] symbol:big.Float
Float math/big

Multi-word search without subpaths
[symbol] symbol:julieqiu foo
FOO github.com/julieqiu/api-demo
FoO github.com/julieqiu/api-demo
Foo github.com/julieqiu/api-demo

Multi-word search with subpaths
[symbol] symbol:github.com/julieqiu foo
FOO github.com/julieqiu/api-demo
FoO github.com/julieqiu/api-demo
Foo github.com/julieqiu/api-demo

Multi-word search with hostname
[symbol] symbol:github.com foo
FOO github.com/julieqiu/api-demo
FoO github.com/julieqiu/api-demo
Foo github.com/julieqiu/api-demo

Multi-word three word search
[symbol] symbol:bee cmd command
Command github.com/beego/bee/cmd/commands
