diff options
Diffstat (limited to 'related/inverted_index_test.go')
-rw-r--r-- | related/inverted_index_test.go | 42 |
1 files changed, 37 insertions, 5 deletions
diff --git a/related/inverted_index_test.go b/related/inverted_index_test.go index 2e6b90bbf..4ef27875d 100644 --- a/related/inverted_index_test.go +++ b/related/inverted_index_test.go @@ -1,4 +1,4 @@ -// Copyright 2017-present The Hugo Authors. All rights reserved. +// Copyright 2019 The Hugo Authors. All rights reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import ( type testDoc struct { keywords map[string][]Keyword date time.Time + name string } func (d *testDoc) String() string { @@ -39,11 +40,19 @@ func (d *testDoc) String() string { return s } +func (d *testDoc) Name() string { + return d.name +} + func newTestDoc(name string, keywords ...string) *testDoc { + time.Sleep(1 * time.Millisecond) + return newTestDocWithDate(name, time.Now(), keywords...) +} + +func newTestDocWithDate(name string, date time.Time, keywords ...string) *testDoc { km := make(map[string][]Keyword) - time.Sleep(1 * time.Millisecond) - kw := &testDoc{keywords: km, date: time.Now()} + kw := &testDoc{keywords: km, date: date} kw.addKeywords(name, keywords...) return kw @@ -68,11 +77,11 @@ func createTestKeywords(name string, keywords ...string) map[string][]string { } } -func (d *testDoc) SearchKeywords(cfg IndexConfig) ([]Keyword, error) { +func (d *testDoc) RelatedKeywords(cfg IndexConfig) ([]Keyword, error) { return d.keywords[cfg.Name], nil } -func (d *testDoc) PubDate() time.Time { +func (d *testDoc) PublishDate() time.Time { return d.date } @@ -167,6 +176,29 @@ func TestSearch(t *testing.T) { assert.Equal(docs[3], m[0]) }) + t.Run("searchdoc-keywords-same-date", func(t *testing.T) { + assert := require.New(t) + idx := NewInvertedIndex(config) + + date := time.Now() + + doc := newTestDocWithDate("keywords", date, "a", "b") + doc.name = "thedoc" + + for i := 0; i < 10; i++ { + docc := *doc + docc.name = fmt.Sprintf("doc%d", i) + idx.Add(&docc) + } + + m, err := idx.SearchDoc(doc, "keywords") + assert.NoError(err) + assert.Len(m, 10) + for i := 0; i < 10; i++ { + assert.Equal(fmt.Sprintf("doc%d", i), m[i].Name()) + } + }) + } func BenchmarkRelatedNewIndex(b *testing.B) { |