const PARSED = [
    {
        query: '(((D, ()))',
        elems: [],
        foundElems: 0,
        userQuery: '(((D, ()))',
        returned: [],
        error: 'Unclosed `(`',
    },
    {
        query: '(((D, ())))',
        elems: [
            {
                name: "()",
                fullPath: ["()"],
                pathWithoutLast: [],
                pathLast: "()",
                generics: [
                    {
                        name: "D",
                        fullPath: ["d"],
                        pathWithoutLast: [],
                        pathLast: "d",
                        generics: [],
                        typeFilter: null,
                    },
                    {
                        name: "()",
                        fullPath: ["()"],
                        pathWithoutLast: [],
                        pathLast: "()",
                        generics: [],
                        typeFilter: "primitive",
                    },
                ],
                typeFilter: "primitive",
            }
        ],
        foundElems: 1,
        userQuery: '(((D, ())))',
        returned: [],
        error: null,
    },
    {
        query: '(),u8',
        elems: [
            {
                name: "()",
                fullPath: ["()"],
                pathWithoutLast: [],
                pathLast: "()",
                generics: [],
                typeFilter: "primitive",
            },
            {
                name: "u8",
                fullPath: ["u8"],
                pathWithoutLast: [],
                pathLast: "u8",
                generics: [],
                typeFilter: null,
            },
        ],
        foundElems: 2,
        userQuery: "(),u8",
        returned: [],
        error: null,
    },
    // Parens act as grouping operators when:
    // - there's no commas directly nested within
    // - there's at least two child types (zero means unit)
    // - it's not tagged with a type filter
    // Otherwise, they represent unit and/or tuple. To search for
    // unit or tuple specifically, use `primitive:unit` or `primitive:tuple<...>`.
    {
        query: '(u8)',
        elems: [
            {
                name: "u8",
                fullPath: ["u8"],
                pathWithoutLast: [],
                pathLast: "u8",
                generics: [],
                typeFilter: null,
            },
        ],
        foundElems: 1,
        userQuery: "(u8)",
        returned: [],
        error: null,
    },
    {
        query: '(u8,)',
        elems: [
            {
                name: "()",
                fullPath: ["()"],
                pathWithoutLast: [],
                pathLast: "()",
                generics: [
                    {
                        name: "u8",
                        fullPath: ["u8"],
                        pathWithoutLast: [],
                        pathLast: "u8",
                        generics: [],
                        typeFilter: null,
                    },
                ],
                typeFilter: "primitive",
            },
        ],
        foundElems: 1,
        userQuery: "(u8,)",
        returned: [],
        error: null,
    },
    {
        query: '(,u8)',
        elems: [
            {
                name: "()",
                fullPath: ["()"],
                pathWithoutLast: [],
                pathLast: "()",
                generics: [
                    {
                        name: "u8",
                        fullPath: ["u8"],
                        pathWithoutLast: [],
                        pathLast: "u8",
                        generics: [],
                        typeFilter: null,
                    },
                ],
                typeFilter: "primitive",
            },
        ],
        foundElems: 1,
        userQuery: "(,u8)",
        returned: [],
        error: null,
    },
    {
        query: 'primitive:(u8)',
        elems: [
            {
                name: "()",
                fullPath: ["()"],
                pathWithoutLast: [],
                pathLast: "()",
                generics: [
                    {
                        name: "u8",
                        fullPath: ["u8"],
                        pathWithoutLast: [],
                        pathLast: "u8",
                        generics: [],
                        typeFilter: null,
                    },
                ],
                typeFilter: "primitive",
            },
        ],
        foundElems: 1,
        userQuery: "primitive:(u8)",
        returned: [],
        error: null,
    },
    {
        query: '(primitive:u8)',
        elems: [
            {
                name: "u8",
                fullPath: ["u8"],
                pathWithoutLast: [],
                pathLast: "u8",
                generics: [],
                typeFilter: "primitive",
            },
        ],
        foundElems: 1,
        userQuery: "(primitive:u8)",
        returned: [],
        error: null,
    },
    {
        query: '(u8,u8)',
        elems: [
            {
                name: "()",
                fullPath: ["()"],
                pathWithoutLast: [],
                pathLast: "()",
                generics: [
                    {
                        name: "u8",
                        fullPath: ["u8"],
                        pathWithoutLast: [],
                        pathLast: "u8",
                        generics: [],
                        typeFilter: null,
                    },
                    {
                        name: "u8",
                        fullPath: ["u8"],
                        pathWithoutLast: [],
                        pathLast: "u8",
                        generics: [],
                        typeFilter: null,
                    },
                ],
                typeFilter: "primitive",
            },
        ],
        foundElems: 1,
        userQuery: "(u8,u8)",
        returned: [],
        error: null,
    },
    {
        query: '(u8<u8>)',
        elems: [
            {
                name: "u8",
                fullPath: ["u8"],
                pathWithoutLast: [],
                pathLast: "u8",
                generics: [
                    {
                        name: "u8",
                        fullPath: ["u8"],
                        pathWithoutLast: [],
                        pathLast: "u8",
                        generics: [],
                        typeFilter: null,
                    },
                ],
                typeFilter: null,
            },
        ],
        foundElems: 1,
        userQuery: "(u8<u8>)",
        returned: [],
        error: null,
    },
    {
        query: '()',
        elems: [
            {
                name: "()",
                fullPath: ["()"],
                pathWithoutLast: [],
                pathLast: "()",
                generics: [],
                typeFilter: "primitive",
            },
        ],
        foundElems: 1,
        userQuery: "()",
        returned: [],
        error: null,
    },
    {
        query: '(>',
        elems: [],
        foundElems: 0,
        userQuery: "(>",
        returned: [],
        error: "Unexpected `>` after `(`",
    },
    {
        query: '(<',
        elems: [],
        foundElems: 0,
        userQuery: "(<",
        returned: [],
        error: "Found generics without a path",
    },
    {
        query: '(a>',
        elems: [],
        foundElems: 0,
        userQuery: "(a>",
        returned: [],
        error: "Unexpected `>` after `(`",
    },
    {
        query: '(a<',
        elems: [],
        foundElems: 0,
        userQuery: "(a<",
        returned: [],
        error: "Unclosed `<`",
    },
    {
        query: '(a',
        elems: [],
        foundElems: 0,
        userQuery: "(a",
        returned: [],
        error: "Unclosed `(`",
    },
    {
        query: '(',
        elems: [],
        foundElems: 0,
        userQuery: "(",
        returned: [],
        error: "Unclosed `(`",
    },
    {
        query: ')',
        elems: [],
        foundElems: 0,
        userQuery: ")",
        returned: [],
        error: "Unexpected `)`",
    },
    {
        query: '(a<b>',
        elems: [],
        foundElems: 0,
        userQuery: "(a<b>",
        returned: [],
        error: "Unclosed `(`",
    },
    {
        query: 'a<b>)',
        elems: [],
        foundElems: 0,
        userQuery: "a<b>)",
        returned: [],
        error: "Unexpected `)` after `>`",
    },
    {
        query: 'macro:(u8)',
        elems: [],
        foundElems: 0,
        userQuery: "macro:(u8)",
        returned: [],
        error: "Invalid search type: primitive `()` and `macro` both specified",
    },
];
