func GetByPath(m interface{}, pathLine string) (interface{}, error) {
	res := Search(m, pathLine)
	if len(res) != 1 {
		str := fmt.Sprintf("Required exactly one value, found [%v] on path [%v]", len(res), pathLine)
		return nil, errors.New(str)
	}
	if HasPathFunc(pathLine) {
		funcRes, err := CallPathFunc(pathLine, res[0])
		if err == nil {
			return funcRes, nil
		}
		return nil, err
	}
	return res[0], nil
}
GetByPath returns value by exact path line
package main
import (
	"fmt"
	"reflect"
	"strconv"
	"strings"
	"github.com/google/go-cmp/cmp"
	"github.com/pkg/errors"
)
const (
	expectationPathSeparator = "."
	expectationSearchSign    = "~"
)