@@ -60,7 +60,6 @@ def test_surrogatePairsBackward(self):
6060 obj = BasicTextProvider (text = u"\U0001f926 \U0001f60a \U0001f44d " ) # 🤦😊👍
6161 ti = obj .makeTextInfo (Offsets (5 , 5 ))
6262 ti .expand (textInfos .UNIT_CHARACTER ) # Range at 👍
63- self .assertEqual (ti .offsets , (4 , 6 )) # Two offsets
6463 ti .move (textInfos .UNIT_CHARACTER , - 1 )
6564 ti .expand (textInfos .UNIT_CHARACTER ) # Range at 😊
6665 self .assertEqual (ti .offsets , (2 , 4 )) # Two offsets
@@ -131,3 +130,102 @@ def test_mixedSurrogatePairsNonSurrogatesAndSingleSurrogatesBackward(self):
131130 ti .move (textInfos .UNIT_CHARACTER , - 1 )
132131 ti .expand (textInfos .UNIT_CHARACTER ) # Range at a
133132 self .assertEqual (ti .offsets , (0 , 1 )) # One offset
133+
134+ class TestEndpoints (unittest .TestCase ):
135+
136+ def test_lessThan (self ):
137+ obj = BasicTextProvider (text = "abcdef" )
138+ wholeTi = obj .makeTextInfo (Offsets (0 , 2 ))
139+ subTi1 = obj .makeTextInfo (Offsets (0 , 3 ))
140+ subTi2 = obj .makeTextInfo (Offsets (2 , 5 ))
141+ self .assertTrue (wholeTi .start < wholeTi .end )
142+ self .assertFalse (wholeTi .end < wholeTi .start )
143+ self .assertFalse (wholeTi .start < wholeTi .start )
144+ self .assertFalse (wholeTi .end < wholeTi .end )
145+ self .assertFalse (wholeTi .start < subTi1 .start )
146+ self .assertTrue (subTi1 .start < subTi2 .start )
147+ self .assertTrue (subTi2 .start < subTi1 .end )
148+ self .assertFalse (subTi2 .end < wholeTi .end )
149+
150+ def test_lessThanOrEqualTo (self ):
151+ obj = BasicTextProvider (text = "abcdef" )
152+ wholeTi = obj .makeTextInfo (Offsets (0 , 5 ))
153+ subTi1 = obj .makeTextInfo (Offsets (0 , 3 ))
154+ subTi2 = obj .makeTextInfo (Offsets (2 , 5 ))
155+ self .assertTrue (wholeTi .start <= wholeTi .end )
156+ self .assertFalse (wholeTi .end <= wholeTi .start )
157+ self .assertTrue (wholeTi .start <= wholeTi .start )
158+ self .assertTrue (wholeTi .end <= wholeTi .end )
159+ self .assertTrue (wholeTi .start <= subTi1 .start )
160+ self .assertTrue (subTi1 .start <= subTi2 .start )
161+ self .assertTrue (subTi2 .start <= subTi1 .end )
162+ self .assertTrue (subTi2 .end <= wholeTi .end )
163+
164+ def test_greaterThanOrEqualTo (self ):
165+ obj = BasicTextProvider (text = "abcdef" )
166+ wholeTi = obj .makeTextInfo (Offsets (0 , 5 ))
167+ subTi1 = obj .makeTextInfo (Offsets (0 , 3 ))
168+ subTi2 = obj .makeTextInfo (Offsets (2 , 5 ))
169+ self .assertFalse (wholeTi .start >= wholeTi .end )
170+ self .assertTrue (wholeTi .end >= wholeTi .start )
171+ self .assertTrue (wholeTi .start >= wholeTi .start )
172+ self .assertTrue (wholeTi .end >= wholeTi .end )
173+ self .assertTrue (wholeTi .start >= subTi1 .start )
174+ self .assertFalse (subTi1 .start >= subTi2 .start )
175+ self .assertFalse (subTi2 .start >= subTi1 .end )
176+ self .assertTrue (subTi2 .end >= wholeTi .end )
177+
178+ def test_greaterThan (self ):
179+ obj = BasicTextProvider (text = "abcdef" )
180+ wholeTi = obj .makeTextInfo (Offsets (0 , 5 ))
181+ subTi1 = obj .makeTextInfo (Offsets (0 , 3 ))
182+ subTi2 = obj .makeTextInfo (Offsets (2 , 5 ))
183+ self .assertFalse (wholeTi .start > wholeTi .end )
184+ self .assertTrue (wholeTi .end > wholeTi .start )
185+ self .assertFalse (wholeTi .start > wholeTi .start )
186+ self .assertFalse (wholeTi .end > wholeTi .end )
187+ self .assertFalse (wholeTi .start > subTi1 .start )
188+ self .assertFalse (subTi1 .start > subTi2 .start )
189+ self .assertFalse (subTi2 .start > subTi1 .end )
190+ self .assertFalse (subTi2 .end > wholeTi .end )
191+
192+ def test_equal (self ):
193+ obj = BasicTextProvider (text = "abcdef" )
194+ wholeTi = obj .makeTextInfo (Offsets (0 , 5 ))
195+ subTi1 = obj .makeTextInfo (Offsets (0 , 3 ))
196+ subTi2 = obj .makeTextInfo (Offsets (2 , 5 ))
197+ self .assertFalse (wholeTi .start == wholeTi .end )
198+ self .assertFalse (wholeTi .end == wholeTi .start )
199+ self .assertTrue (wholeTi .start == wholeTi .start )
200+ self .assertTrue (wholeTi .end == wholeTi .end )
201+ self .assertTrue (wholeTi .start == subTi1 .start )
202+ self .assertFalse (subTi1 .start == subTi2 .start )
203+ self .assertFalse (subTi2 .start == subTi1 .end )
204+ self .assertTrue (subTi2 .end == wholeTi .end )
205+
206+ def test_notEqual (self ):
207+ obj = BasicTextProvider (text = "abcdef" )
208+ wholeTi = obj .makeTextInfo (Offsets (0 , 5 ))
209+ subTi1 = obj .makeTextInfo (Offsets (0 , 3 ))
210+ subTi2 = obj .makeTextInfo (Offsets (2 , 5 ))
211+ self .assertTrue (wholeTi .start != wholeTi .end )
212+ self .assertTrue (wholeTi .end != wholeTi .start )
213+ self .assertFalse (wholeTi .start != wholeTi .start )
214+ self .assertFalse (wholeTi .end != wholeTi .end )
215+ self .assertFalse (wholeTi .start != subTi1 .start )
216+ self .assertTrue (subTi1 .start != subTi2 .start )
217+ self .assertTrue (subTi2 .start != subTi1 .end )
218+ self .assertFalse (subTi2 .end != wholeTi .end )
219+
220+ def test_setStart (self ):
221+ obj = BasicTextProvider (text = "abcdef" )
222+ ti1 = obj .makeTextInfo (Offsets (0 , 2 ))
223+ ti2 = obj .makeTextInfo (Offsets (3 , 5 ))
224+ ti1 .end = ti2 .end
225+ self .assertEqual ((ti1 ._startOffset , ti1 ._endOffset ), (0 , 5 ))
226+ ti1 .start = ti2 .start
227+ self .assertEqual ((ti1 ._startOffset , ti1 ._endOffset ), (3 , 5 ))
228+ ti1 .end = ti2 .start
229+ self .assertEqual ((ti1 ._startOffset , ti1 ._endOffset ), (3 , 3 ))
230+ ti1 .start = ti2 .end
231+ self .assertEqual ((ti1 ._startOffset , ti1 ._endOffset ), (5 , 5 ))
0 commit comments