diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2025-06-13 18:33:34 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2025-06-13 18:33:34 -0400 |
| commit | 06d091cc609e90974f8da7e7ae153f3c2a83ee46 (patch) | |
| tree | a619963db899570ff8631383fff94cecd28ab8ac /pkg/query/parser_test.go | |
| parent | 6b0151257a76b5f2f6aa4bbcdc027fce57cc6170 (diff) | |
Add only child optimization to query parser
Diffstat (limited to 'pkg/query/parser_test.go')
| -rw-r--r-- | pkg/query/parser_test.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/pkg/query/parser_test.go b/pkg/query/parser_test.go index 7ee4987..c1f25d4 100644 --- a/pkg/query/parser_test.go +++ b/pkg/query/parser_test.go @@ -19,6 +19,26 @@ func TestClause_Flatten(t *testing.T) { query.Clause{}, }, { + "empty with child", + &query.Clause{ + Operator: query.COP_OR, + Clauses: []*query.Clause{ + { + Operator: query.COP_AND, + Statements: []query.Statement{ + {Category: query.CAT_AUTHOR, Operator: query.OP_AP, Value: query.StringValue{"jp"}}, + }, + }, + }, + }, + query.Clause{ + Operator: query.COP_AND, + Statements: []query.Statement{ + {Category: query.CAT_AUTHOR, Operator: query.OP_AP, Value: query.StringValue{"jp"}}, + }, + }, + }, + { "already flat", &query.Clause{ Operator: query.COP_AND, @@ -170,3 +190,33 @@ func TestClause_Flatten(t *testing.T) { }) } } + +func TestParse(t *testing.T) { + tests := []struct { + name string // description of this test case + // Named input parameters for target function. + tokens []query.Token + want *query.Clause + wantErr bool + }{ + // TODO: Add test cases. + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, gotErr := query.Parse(tt.tokens) + if gotErr != nil { + if !tt.wantErr { + t.Errorf("Parse() failed: %v", gotErr) + } + return + } + if tt.wantErr { + t.Fatal("Parse() succeeded unexpectedly") + } + // TODO: update the condition below to compare got with tt.want. + if true { + t.Errorf("Parse() = %v, want %v", got, tt.want) + } + }) + } +} |
