@@ -175,6 +175,85 @@ func TestOfflineFixHostPort(t *testing.T) {
175175 }
176176}
177177
178+ func TestOfflineMinError (t * testing.T ) {
179+ const format = "5.000000"
180+ base := time .Date (2026 , 0 , 0 , 0 , 0 , 0 , 0 , time .UTC )
181+
182+ cases := []struct {
183+ t1 , t2 , t3 , t4 time.Time
184+ minError time.Duration
185+ }{
186+ {
187+ base ,
188+ base .Add (1 * time .Millisecond ),
189+ base .Add (1 * time .Millisecond ),
190+ base .Add (1 * time .Millisecond ),
191+ 0 ,
192+ },
193+ {
194+ base ,
195+ base .Add (1 * time .Millisecond ),
196+ base .Add (1 * time .Millisecond ),
197+ base .Add (10 * time .Millisecond ),
198+ 0 ,
199+ },
200+ {
201+ base ,
202+ base .Add (1 * time .Millisecond ),
203+ base .Add (1 * time .Millisecond ),
204+ base .Add (25 * time .Microsecond ),
205+ 975 * time .Microsecond ,
206+ },
207+ {
208+ base ,
209+ base .Add (1 * time .Millisecond ),
210+ base .Add (1 * time .Millisecond ),
211+ base .Add (2 * time .Microsecond ),
212+ 998 * time .Microsecond ,
213+ },
214+ {
215+ base ,
216+ base .Add (25 * time .Millisecond ),
217+ base .Add (25 * time .Millisecond ),
218+ base .Add (1 * time .Millisecond ),
219+ 24 * time .Millisecond ,
220+ },
221+ {
222+ base .Add (78 * time .Millisecond ),
223+ base .Add (38 * time .Millisecond ),
224+ base .Add (38 * time .Millisecond ),
225+ base .Add (94 * time .Millisecond ),
226+ 40 * time .Millisecond ,
227+ },
228+ {
229+ base .Add (78 * time .Millisecond ),
230+ base .Add (38 * time .Millisecond ),
231+ base .Add (39 * time .Millisecond ),
232+ base .Add (94 * time .Millisecond ),
233+ 40 * time .Millisecond ,
234+ },
235+ {
236+ base .Add (78 * time .Millisecond ),
237+ base .Add (38 * time .Millisecond ),
238+ base .Add (39 * time .Millisecond ),
239+ base .Add (95 * time .Millisecond ),
240+ 40 * time .Millisecond ,
241+ },
242+ }
243+
244+ for _ , c := range cases {
245+ m := minError (c .t1 , c .t2 , c .t3 , c .t4 )
246+ if m != c .minError {
247+ t .Errorf ("minError(%s, %s, %s, %s) = %s; want %s" ,
248+ c .t1 .Format (format ),
249+ c .t2 .Format (format ),
250+ c .t3 .Format (format ),
251+ c .t4 .Format (format ),
252+ m , c .minError )
253+ }
254+ }
255+ }
256+
178257func TestOfflineKissCode (t * testing.T ) {
179258 codes := []struct {
180259 id uint32
0 commit comments