| 1 |
# -*- coding: utf-8 -*- |
|---|
| 2 |
# |
|---|
| 3 |
# Copyright (C) 2006 Alec Thomas <alec@swapoff.org> |
|---|
| 4 |
# |
|---|
| 5 |
# This software is licensed as described in the file COPYING, which |
|---|
| 6 |
# you should have received as part of this distribution. |
|---|
| 7 |
# |
|---|
| 8 |
|
|---|
| 9 |
from pyndexter import Document, URI |
|---|
| 10 |
|
|---|
| 11 |
# Text thanks to the Lorem Ipsum generator at http://www.lipsum.com/ |
|---|
| 12 |
|
|---|
| 13 |
corpus = [ |
|---|
| 14 |
u"""Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc congue odio |
|---|
| 15 |
eget risus. Sed convallis velit vel elit. Curabitur ante. Aliquam a purus. |
|---|
| 16 |
Donec pulvinar. Vestibulum leo purus, egestas quis, dapibus non, tempus ac, |
|---|
| 17 |
risus. Etiam pretium risus a libero. Integer at dolor sed dolor aliquam |
|---|
| 18 |
lobortis. Nullam sed libero at sem vehicula placerat. Donec dolor purus, |
|---|
| 19 |
faucibus sit amet, dictum non, feugiat eget, odio. Nullam ut sem cursus lorem |
|---|
| 20 |
porttitor tincidunt. Vestibulum a sem. Class aptent taciti sociosqu ad litora |
|---|
| 21 |
torquent per conubia nostra, per inceptos hymenaeos. Vestibulum pellentesque. |
|---|
| 22 |
Nulla molestie dolor non mauris. Quisque iaculis. Vestibulum fermentum ultrices |
|---|
| 23 |
pede. Mauris vulputate sapien ac dolor.""", |
|---|
| 24 |
|
|---|
| 25 |
u"""Nunc massa nisi, fringilla ut, convallis ac, sodales a, felis. Aenean erat |
|---|
| 26 |
lectus, sagittis in, ullamcorper eu, placerat vel, lorem. Etiam dui. Duis |
|---|
| 27 |
vestibulum placerat sem. Suspendisse in eros. Pellentesque erat purus, semper |
|---|
| 28 |
auctor, ultrices ac, fermentum in, libero. Etiam accumsan velit in dolor. Ut |
|---|
| 29 |
cursus leo et elit. Cras est. Praesent sapien.""", |
|---|
| 30 |
|
|---|
| 31 |
u"""Pellentesque augue est, condimentum sodales, vehicula tincidunt, ultrices |
|---|
| 32 |
quis, mi. Suspendisse quis velit eu ipsum auctor iaculis. Aenean vestibulum |
|---|
| 33 |
scelerisque tortor. Pellentesque tincidunt. Ut purus sapien, egestas nec, |
|---|
| 34 |
posuere sit amet, ullamcorper in, elit. Praesent dapibus molestie quam. |
|---|
| 35 |
Phasellus sed sapien. In hac habitasse platea dictumst. Quisque consectetuer |
|---|
| 36 |
elementum dolor. Aenean elementum tellus sed erat. Maecenas odio. Proin a dui. |
|---|
| 37 |
Phasellus felis. Aenean nunc urna, sollicitudin tristique, volutpat quis, |
|---|
| 38 |
mattis eget, sem.""", |
|---|
| 39 |
|
|---|
| 40 |
u"""Morbi lacinia sodales quam. Maecenas nunc. Phasellus mollis nibh sit amet |
|---|
| 41 |
lacus. Etiam pharetra. Vivamus diam ipsum, luctus et, luctus nec, auctor vel, |
|---|
| 42 |
tellus. Vestibulum lobortis feugiat dolor. Phasellus diam felis, commodo vitae, |
|---|
| 43 |
laoreet ac, euismod sit amet, nunc. Vestibulum ut metus. Praesent vel nibh ac |
|---|
| 44 |
libero convallis imperdiet. Morbi dignissim. Donec id purus at lorem lobortis |
|---|
| 45 |
pretium. Integer massa justo, auctor quis, condimentum vel, feugiat sit amet, |
|---|
| 46 |
arcu. Nunc lacinia, lectus eget accumsan imperdiet, nunc augue condimentum mi, |
|---|
| 47 |
in varius ante mi at justo. Sed mauris turpis, porta eget, mollis eu, tempor |
|---|
| 48 |
sollicitudin, tellus. Sed laoreet aliquet leo. In sapien est, bibendum non, |
|---|
| 49 |
tempor vel, iaculis at, leo.""", |
|---|
| 50 |
|
|---|
| 51 |
u"""Integer ligula massa, gravida vel, suscipit eget, pulvinar a, eros. Fusce |
|---|
| 52 |
vestibulum risus sed massa. Cras dictum eleifend justo. Sed et metus vel neque |
|---|
| 53 |
faucibus pulvinar. Vivamus tellus mi, rhoncus ut, venenatis eget, sollicitudin |
|---|
| 54 |
at, diam. Sed sit amet lacus nonummy metus sollicitudin cursus. Fusce a velit. |
|---|
| 55 |
Etiam eu quam. Pellentesque vulputate pede eget velit. Donec augue lorem, |
|---|
| 56 |
elementum sed, ornare vitae, ullamcorper sit amet, justo. Maecenas suscipit |
|---|
| 57 |
velit id turpis. Aenean cursus facilisis mi. Donec id ligula at velit fermentum |
|---|
| 58 |
ornare. Nullam nec orci. Curabitur vitae nulla sit amet lacus viverra |
|---|
| 59 |
vestibulum. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.""", |
|---|
| 60 |
|
|---|
| 61 |
u"""Mauris ac mi. In tincidunt, sapien id cursus tincidunt, ipsum mauris |
|---|
| 62 |
imperdiet lectus, sed iaculis quam dolor eu metus. Suspendisse mattis. Donec |
|---|
| 63 |
nec augue vitae nulla aliquam commodo. Nulla ornare lorem ut mauris. Curabitur |
|---|
| 64 |
massa. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut |
|---|
| 65 |
pellentesque nunc. Aliquam dapibus pretium dui. Proin dictum ligula scelerisque |
|---|
| 66 |
nisi. Suspendisse potenti. Quisque ut velit rhoncus orci placerat suscipit. In |
|---|
| 67 |
tempus, ante vel tempus venenatis, nunc lectus vehicula lectus, vitae vehicula |
|---|
| 68 |
leo lectus ut lacus. Donec dictum, nisi eu fringilla pharetra, erat tellus |
|---|
| 69 |
lobortis sem, vitae consectetuer magna nisl vel sem. Morbi ullamcorper augue |
|---|
| 70 |
sed enim. Fusce rhoncus lacinia turpis. Donec at erat. Nunc vehicula.""", |
|---|
| 71 |
|
|---|
| 72 |
u"""Cras at eros. Integer risus. Donec a elit eget nisi auctor malesuada. |
|---|
| 73 |
Integer eu augue. Nam nunc. Nam nec turpis. Suspendisse potenti. Ut interdum |
|---|
| 74 |
nisi vitae diam. Phasellus sed justo vel lorem malesuada elementum. Cras tempor |
|---|
| 75 |
urna vitae metus ultricies facilisis. Aliquam erat volutpat. Nulla |
|---|
| 76 |
facilisi.""", |
|---|
| 77 |
|
|---|
| 78 |
u"""Integer id sapien. Quisque non arcu. Fusce metus elit, ultricies ac, gravida |
|---|
| 79 |
tempor, dapibus nec, neque. Aliquam at felis et turpis scelerisque posuere. |
|---|
| 80 |
Maecenas aliquet quam id odio egestas lacinia. Suspendisse tempor quam euismod |
|---|
| 81 |
magna. Ut magna sem, hendrerit sed, sodales vel, convallis in, dolor. Ut |
|---|
| 82 |
molestie ligula eu ligula. Proin quis lacus tincidunt nunc pellentesque |
|---|
| 83 |
sollicitudin. Aenean pellentesque. Nulla facilisi. Ut sed nibh. Nunc felis |
|---|
| 84 |
velit, tincidunt sed, mattis id, pharetra eget, dolor. Cras pulvinar mi in |
|---|
| 85 |
pede.""", |
|---|
| 86 |
|
|---|
| 87 |
u"""Vestibulum interdum. Quisque dictum vestibulum purus. Sed sed nisl. |
|---|
| 88 |
Suspendisse potenti. Curabitur in lectus. Nulla et arcu at tellus imperdiet |
|---|
| 89 |
facilisis. Donec hendrerit aliquam quam. Etiam felis libero, porta ut, luctus |
|---|
| 90 |
sit amet, varius nec, ante. Cum sociis natoque penatibus et magnis dis |
|---|
| 91 |
parturient montes, nascetur ridiculus mus. Donec volutpat dolor sed velit. Nunc |
|---|
| 92 |
sed felis quis lectus gravida dignissim. Donec a augue. Nullam in diam quis |
|---|
| 93 |
risus tristique vehicula. Sed accumsan. Proin lacus tortor, tincidunt eget, |
|---|
| 94 |
ornare id, interdum eu, enim. Duis eu orci nec elit consequat imperdiet. Cum |
|---|
| 95 |
sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus |
|---|
| 96 |
mus. Vestibulum magna eros, ultrices et, dictum eget, rhoncus in, libero. Ut |
|---|
| 97 |
eget nunc. Donec et lorem.""", |
|---|
| 98 |
|
|---|
| 99 |
u"""Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere |
|---|
| 100 |
cubilia Curae; Quisque posuere dui at tellus. Nam sodales condimentum velit. |
|---|
| 101 |
Mauris pulvinar leo. Etiam eu dui. Mauris aliquam dignissim mi. Fusce venenatis |
|---|
| 102 |
urna vel nunc. Praesent imperdiet dolor id metus. Sed ut magna vel turpis |
|---|
| 103 |
dictum elementum. Fusce nunc dolor, lacinia ut, dignissim quis, gravida |
|---|
| 104 |
accumsan, purus. In dictum augue. Ut non eros id nisl mollis pretium.""", |
|---|
| 105 |
|
|---|
| 106 |
u"""Nunc ultricies neque tempor nisi. Etiam congue lectus ac felis. Nam ut dolor |
|---|
| 107 |
placerat nisi venenatis dictum. Morbi quis turpis in massa vestibulum |
|---|
| 108 |
consectetuer. Nulla facilisi. Maecenas rhoncus, dolor at sodales pretium, dui |
|---|
| 109 |
justo dictum nunc, vel condimentum augue nisi a sapien. Sed tincidunt dictum |
|---|
| 110 |
elit. Aliquam quam pede, semper vitae, porttitor quis, hendrerit ac, nulla. |
|---|
| 111 |
Nulla porta diam. In lorem urna, ultricies vel, porttitor et, ultricies mattis, |
|---|
| 112 |
risus. Sed lobortis magna ut lorem. Donec a mi. Duis pretium est dignissim |
|---|
| 113 |
lorem. Nunc gravida vulputate pede. Ut rutrum adipiscing sem. Praesent sed erat |
|---|
| 114 |
in tellus commodo volutpat. Curabitur volutpat nisi eget nunc. Proin enim. |
|---|
| 115 |
Morbi facilisis ante quis purus.""", |
|---|
| 116 |
|
|---|
| 117 |
u"""Quisque rutrum risus vel est. Morbi ac mi in augue lacinia luctus. Phasellus |
|---|
| 118 |
eros dui, ornare at, accumsan et, commodo quis, diam. Curabitur dolor risus, |
|---|
| 119 |
auctor et, auctor sed, lacinia sed, tellus. Nullam lacinia pharetra dui. Donec |
|---|
| 120 |
eu arcu. Sed adipiscing nisi ut dui blandit eleifend. Duis vel sapien sed felis |
|---|
| 121 |
lacinia sodales. Donec consequat risus vel quam. Nulla facilisi. Praesent |
|---|
| 122 |
ornare est at libero. Aliquam risus elit, dignissim vehicula, faucibus a, |
|---|
| 123 |
accumsan sed, nisi. Etiam nibh. Nullam adipiscing mauris non augue. Vestibulum |
|---|
| 124 |
ipsum mauris, cursus id, ornare in, molestie non, diam. Curabitur sed quam. |
|---|
| 125 |
Proin ut libero. Aenean hendrerit est nec felis.""", |
|---|
| 126 |
|
|---|
| 127 |
u"""Morbi lobortis, urna ut gravida dictum, nisl diam posuere augue, non |
|---|
| 128 |
suscipit mi turpis id dolor. Phasellus fringilla, augue et imperdiet hendrerit, |
|---|
| 129 |
justo tortor tincidunt lectus, in gravida enim elit eu nisl. Suspendisse dictum |
|---|
| 130 |
tellus placerat arcu. Aliquam faucibus massa vitae pede. Curabitur sapien |
|---|
| 131 |
libero, sodales sit amet, euismod sit amet, ultricies sed, leo. Vivamus cursus |
|---|
| 132 |
congue arcu. Aliquam erat volutpat. Sed arcu velit, tempor at, posuere in, |
|---|
| 133 |
dignissim nec, urna. Etiam mollis bibendum orci. Vestibulum augue metus, |
|---|
| 134 |
interdum ut, imperdiet ac, rutrum vitae, lorem. Nam viverra. Vivamus neque. |
|---|
| 135 |
Maecenas aliquam fermentum elit. Vestibulum a tellus. Etiam eget nibh sed arcu |
|---|
| 136 |
convallis luctus. Nullam suscipit. Suspendisse congue. Etiam luctus |
|---|
| 137 |
consectetuer tellus. Etiam purus magna, egestas id, pharetra id, ullamcorper |
|---|
| 138 |
quis, erat.""", |
|---|
| 139 |
|
|---|
| 140 |
u"""Morbi quis tortor a libero tempus pellentesque. Maecenas eu pede vel purus |
|---|
| 141 |
varius sollicitudin. Nulla suscipit est at turpis. Sed pede. Pellentesque |
|---|
| 142 |
lectus lectus, sodales nec, ultrices non, adipiscing vel, orci. Donec fermentum |
|---|
| 143 |
convallis lacus. Donec iaculis risus ultrices arcu. Aliquam urna orci, viverra |
|---|
| 144 |
sit amet, dictum eu, facilisis at, dui. Proin quis augue. Cras nulla mauris, |
|---|
| 145 |
dapibus eu, sagittis sed, ultricies non, est. Suspendisse consectetuer. Sed |
|---|
| 146 |
velit. Nunc lorem tortor, vestibulum vel, aliquet vel, condimentum vitae, elit. |
|---|
| 147 |
Sed sit amet pede non libero lobortis tempor. Mauris magna.""", |
|---|
| 148 |
|
|---|
| 149 |
u"""Proin velit. Aliquam erat volutpat. In ornare. Ut mi. Proin sit amet pede |
|---|
| 150 |
tempus nulla dapibus iaculis. Nulla tincidunt. Etiam sagittis imperdiet mi. |
|---|
| 151 |
Phasellus elit tellus, mollis sed, mattis at, facilisis et, nulla. Vestibulum |
|---|
| 152 |
congue fringilla tortor. Ut justo arcu, varius a, vehicula id, mollis sed, |
|---|
| 153 |
justo. In vehicula, metus ac scelerisque pharetra, eros arcu viverra purus, sit |
|---|
| 154 |
amet molestie lorem diam a magna. Aenean at sapien. Quisque hendrerit. Sed arcu |
|---|
| 155 |
est, posuere quis, hendrerit ac, pretium non, pede. Cras accumsan lectus sed |
|---|
| 156 |
nisl. Integer massa ante, dictum aliquet, ultricies sit amet, ornare vitae, |
|---|
| 157 |
orci. Nullam interdum blandit ante. Vestibulum leo. Integer sit amet sem.""", |
|---|
| 158 |
|
|---|
| 159 |
u"""Ut mi tellus, scelerisque id, laoreet eget, interdum sit amet, justo. Etiam |
|---|
| 160 |
urna. Integer non erat a dui ullamcorper imperdiet. Fusce et tellus ut pede |
|---|
| 161 |
mattis laoreet. Suspendisse aliquam feugiat nulla. Maecenas in diam eget neque |
|---|
| 162 |
lobortis ultrices. Morbi in libero nec sem vehicula imperdiet. Mauris sapien |
|---|
| 163 |
ante, malesuada sit amet, rutrum sed, consequat iaculis, massa. Donec ac velit. |
|---|
| 164 |
In volutpat odio at justo. Maecenas id lectus. Ut porta. Suspendisse purus. |
|---|
| 165 |
Proin imperdiet turpis et nibh. Nulla facilisi. Quisque imperdiet est id erat |
|---|
| 166 |
tempor tincidunt. Phasellus lacinia elit nec turpis.""", |
|---|
| 167 |
|
|---|
| 168 |
u"""Nulla elit erat, fermentum ut, tempor nec, varius quis, quam. Lorem ipsum |
|---|
| 169 |
dolor sit amet, consectetuer adipiscing elit. Pellentesque auctor magna vitae |
|---|
| 170 |
erat. Vivamus sodales. Praesent felis sapien, hendrerit quis, pharetra sit |
|---|
| 171 |
amet, congue in, lacus. Fusce viverra. Duis venenatis leo at erat. Vivamus eu |
|---|
| 172 |
ante. Nulla a felis. Sed lacinia nonummy tortor. Proin justo arcu, vulputate |
|---|
| 173 |
id, gravida iaculis, posuere id, pede. Integer tristique. Etiam varius, nisi |
|---|
| 174 |
vitae varius aliquet, pede diam feugiat metus, non nonummy ipsum nulla sed |
|---|
| 175 |
urna. Nullam eu quam. Phasellus vestibulum.""", |
|---|
| 176 |
|
|---|
| 177 |
u"""Nullam posuere pretium augue. Nulla sed lacus sed nunc mollis imperdiet. |
|---|
| 178 |
Donec nibh metus, placerat ac, consectetuer quis, tincidunt id, erat. |
|---|
| 179 |
Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere |
|---|
| 180 |
cubilia Curae; Nunc feugiat tristique sem. Aenean eros. Donec venenatis. Nulla |
|---|
| 181 |
sed nibh in orci bibendum condimentum. Donec sed sapien sed quam pulvinar |
|---|
| 182 |
convallis. Sed rutrum laoreet turpis. Etiam adipiscing lectus sit amet odio. |
|---|
| 183 |
Mauris eget dolor. Sed aliquet gravida mauris.""", |
|---|
| 184 |
|
|---|
| 185 |
u"""Phasellus ultrices augue. Aenean eu pede at risus rutrum sodales. Morbi erat |
|---|
| 186 |
ipsum, ornare ac, dapibus vel, viverra quis, est. Duis in libero ac turpis |
|---|
| 187 |
nonummy sodales. Ut sit amet magna. Phasellus vitae est. Morbi molestie, tortor |
|---|
| 188 |
eget lobortis egestas, neque justo aliquet arcu, in posuere libero urna eu |
|---|
| 189 |
arcu. Vestibulum sit amet est tristique ligula fringilla dapibus. Vestibulum |
|---|
| 190 |
ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; |
|---|
| 191 |
Sed in mi. Cras sed odio. Duis ut orci. Etiam mattis pretium risus. Phasellus |
|---|
| 192 |
porttitor orci sit amet augue. Phasellus placerat, mauris quis mattis eleifend, |
|---|
| 193 |
dolor nibh lacinia quam, interdum ornare leo erat ut tellus. Vestibulum ornare |
|---|
| 194 |
congue nibh. Vivamus tincidunt nisi. Donec rutrum dapibus felis.""", |
|---|
| 195 |
|
|---|
| 196 |
u"""Donec nisl. Nullam sollicitudin felis vitae tortor. Pellentesque leo diam, |
|---|
| 197 |
facilisis eget, fermentum eu, scelerisque vitae, enim. Proin vestibulum, orci |
|---|
| 198 |
in convallis tempus, turpis mauris condimentum sem, a vestibulum leo dolor |
|---|
| 199 |
vitae eros. Curabitur sagittis. In sed metus. In non nunc eget purus dapibus |
|---|
| 200 |
vehicula. In mattis, mauris vitae dictum fermentum, justo sem aliquam ligula, |
|---|
| 201 |
viverra facilisis nisi pede et mi. Donec dapibus, magna iaculis accumsan |
|---|
| 202 |
vulputate, elit lectus adipiscing nisi, ut adipiscing libero mi id velit. Nunc |
|---|
| 203 |
feugiat metus eu ligula varius fermentum. Morbi lacinia, nulla et luctus |
|---|
| 204 |
auctor, ipsum ligula malesuada sem, eget dignissim augue sem eget augue.""", |
|---|
| 205 |
] |
|---|
| 206 |
|
|---|
| 207 |
documents = dict([(u'mock://%i' % index, |
|---|
| 208 |
Document(uri=u'mock://%i' % index, content=text, |
|---|
| 209 |
changed=index)) |
|---|
| 210 |
for index, text in enumerate(corpus)]) |
|---|
| 211 |
|
|---|
| 212 |
mock_uri_list = [URI(u'mock://%i' % i) for i, doc in enumerate(documents)] |
|---|
| 213 |
mock_uri_list.sort() |
|---|
| 214 |
|
|---|
| 215 |
simple_hits = [URI(u'mock://0'), URI(u'mock://1'), URI(u'mock://10'), |
|---|
| 216 |
URI(u'mock://12'), URI(u'mock://13'), URI(u'mock://14'), |
|---|
| 217 |
URI(u'mock://16'), URI(u'mock://3'), URI(u'mock://4'), |
|---|
| 218 |
URI(u'mock://5'), URI(u'mock://6'), URI(u'mock://8')] |
|---|
| 219 |
simple_query = u'lorem' |
|---|
| 220 |
|
|---|
| 221 |
and_hits = [URI(u'mock://0'), URI(u'mock://16'), URI(u'mock://3'), |
|---|
| 222 |
URI(u'mock://4'), URI(u'mock://5')] |
|---|
| 223 |
and_query = u'lorem ipsum' |
|---|
| 224 |
|
|---|
| 225 |
not_hits = [URI(u'mock://16'), URI(u'mock://3'), URI(u'mock://4')] |
|---|
| 226 |
not_query = u'lorem ipsum -placerat' |
|---|