~bibledit/bibledit/ubuntu-cloud

« back to all changes in this revision

Viewing changes to unittests/navigation.cpp

  • Committer: Teus Benschop
  • Date: 2022-08-30 18:42:32 UTC
  • Revision ID: teusjannette@gmail.com-20220830184232-a5bf5fkj14cqdx01
new upstream version

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
    database.create ();
43
43
    
44
44
    // Use current time.
45
 
    int time = filter_date_seconds_since_epoch ();
 
45
    int time = filter::date::seconds_since_epoch ();
46
46
    
47
47
    // Record one entry.
48
48
    // As a result there should be no previous entry.
87
87
    Database_Navigation database;
88
88
    database.create ();
89
89
    // Use current time.
90
 
    int time = filter_date_seconds_since_epoch ();
 
90
    int time = filter::date::seconds_since_epoch ();
91
91
    // Record one entry, and another one 6 seconds later.
92
92
    database.record (time, user, 1, 2, 3);
93
93
    time += 6;
94
94
    database.record (time, user, 4, 5, 6);
95
95
    // Get previous entry, which should be the first one entered.
96
96
    Passage passage = database.get_previous (user);
97
 
    evaluate (__LINE__, __func__, 1, passage.book);
98
 
    evaluate (__LINE__, __func__, 2, passage.chapter);
99
 
    evaluate (__LINE__, __func__, "3", passage.verse);
 
97
    evaluate (__LINE__, __func__, 1, passage.m_book);
 
98
    evaluate (__LINE__, __func__, 2, passage.m_chapter);
 
99
    evaluate (__LINE__, __func__, "3", passage.m_verse);
100
100
  }
101
101
  
102
102
  {
104
104
    Database_Navigation database;
105
105
    database.create ();
106
106
    // Use current time.
107
 
    int time = filter_date_seconds_since_epoch ();
 
107
    int time = filter::date::seconds_since_epoch ();
108
108
    // Record one entry, and another 6 seconds later.
109
109
    database.record (time, user, 1, 2, 3);
110
110
    time += 6;
111
111
    database.record (time, user, 4, 5, 6);
112
112
    // Get previous entry for another user: It should not be there.
113
113
    Passage passage = database.get_previous (user + "2");
114
 
    evaluate (__LINE__, __func__, 0, passage.book);
115
 
    evaluate (__LINE__, __func__, 0, passage.chapter);
116
 
    evaluate (__LINE__, __func__, "", passage.verse);
 
114
    evaluate (__LINE__, __func__, 0, passage.m_book);
 
115
    evaluate (__LINE__, __func__, 0, passage.m_chapter);
 
116
    evaluate (__LINE__, __func__, "", passage.m_verse);
117
117
  }
118
118
  
119
119
  {
121
121
    Database_Navigation database;
122
122
    database.create ();
123
123
    // Use current time.
124
 
    int time = filter_date_seconds_since_epoch ();
 
124
    int time = filter::date::seconds_since_epoch ();
125
125
    // Record three entries, each one 6 seconds later.
126
126
    database.record (time, user, 1, 2, 3);
127
127
    time += 6;
130
130
    database.record (time, user, 7, 8, 9);
131
131
    // Get previous entry, which should be the second one entered.
132
132
    Passage passage = database.get_previous (user);
133
 
    evaluate (__LINE__, __func__, 4, passage.book);
134
 
    evaluate (__LINE__, __func__, 5, passage.chapter);
135
 
    evaluate (__LINE__, __func__, "6", passage.verse);
 
133
    evaluate (__LINE__, __func__, 4, passage.m_book);
 
134
    evaluate (__LINE__, __func__, 5, passage.m_chapter);
 
135
    evaluate (__LINE__, __func__, "6", passage.m_verse);
136
136
  }
137
137
  
138
138
  {
140
140
    Database_Navigation database;
141
141
    database.create ();
142
142
    // Use current time.
143
 
    int time = filter_date_seconds_since_epoch ();
 
143
    int time = filter::date::seconds_since_epoch ();
144
144
    // Record five entries, each one 6 seconds later.
145
145
    database.record (time, user, 1, 2, 3);
146
146
    time += 6;
153
153
    database.record (time, user, 13, 14, 15);
154
154
    // Get previous entry, which should be the last but one passage recorded.
155
155
    Passage passage = database.get_previous (user);
156
 
    evaluate (__LINE__, __func__, 10, passage.book);
157
 
    evaluate (__LINE__, __func__, 11, passage.chapter);
158
 
    evaluate (__LINE__, __func__, "12", passage.verse);
 
156
    evaluate (__LINE__, __func__, 10, passage.m_book);
 
157
    evaluate (__LINE__, __func__, 11, passage.m_chapter);
 
158
    evaluate (__LINE__, __func__, "12", passage.m_verse);
159
159
  }
160
160
  
161
161
  {
164
164
    database.create ();
165
165
    // There should be no next passage.
166
166
    Passage passage = database.get_next (user);
167
 
    evaluate (__LINE__, __func__, 0, passage.book);
168
 
    evaluate (__LINE__, __func__, 0, passage.chapter);
169
 
    evaluate (__LINE__, __func__, "", passage.verse);
 
167
    evaluate (__LINE__, __func__, 0, passage.m_book);
 
168
    evaluate (__LINE__, __func__, 0, passage.m_chapter);
 
169
    evaluate (__LINE__, __func__, "", passage.m_verse);
170
170
  }
171
171
  
172
172
  {
174
174
    Database_Navigation database;
175
175
    database.create ();
176
176
    // Use current time.
177
 
    int time = filter_date_seconds_since_epoch ();
 
177
    int time = filter::date::seconds_since_epoch ();
178
178
    // Record several entries, all spaced apart by 6 seconds.
179
179
    database.record (time, user, 1, 2, 3);
180
180
    time += 6;
186
186
    time += 6;
187
187
    database.record (time, user, 1, 2, 3);
188
188
    Passage passage = database.get_next (user);
189
 
    evaluate (__LINE__, __func__, 0, passage.book);
190
 
    evaluate (__LINE__, __func__, 0, passage.chapter);
191
 
    evaluate (__LINE__, __func__, "", passage.verse);
 
189
    evaluate (__LINE__, __func__, 0, passage.m_book);
 
190
    evaluate (__LINE__, __func__, 0, passage.m_chapter);
 
191
    evaluate (__LINE__, __func__, "", passage.m_verse);
192
192
  }
193
193
  
194
194
  {
196
196
    Database_Navigation database;
197
197
    database.create ();
198
198
    // Record two entries at an interval.
199
 
    int time = filter_date_seconds_since_epoch ();
 
199
    int time = filter::date::seconds_since_epoch ();
200
200
    database.record (time, user, 1, 2, 3);
201
201
    time += 6;
202
202
    database.record (time, user, 4, 5, 6);
203
203
    // Next entry is not there.
204
204
    Passage passage = database.get_next (user);
205
 
    evaluate (__LINE__, __func__, 0, passage.book);
206
 
    evaluate (__LINE__, __func__, 0, passage.chapter);
207
 
    evaluate (__LINE__, __func__, "", passage.verse);
 
205
    evaluate (__LINE__, __func__, 0, passage.m_book);
 
206
    evaluate (__LINE__, __func__, 0, passage.m_chapter);
 
207
    evaluate (__LINE__, __func__, "", passage.m_verse);
208
208
    // Previous entry should be there.
209
209
    passage = database.get_previous (user);
210
 
    evaluate (__LINE__, __func__, 1, passage.book);
211
 
    evaluate (__LINE__, __func__, 2, passage.chapter);
212
 
    evaluate (__LINE__, __func__, "3", passage.verse);
 
210
    evaluate (__LINE__, __func__, 1, passage.m_book);
 
211
    evaluate (__LINE__, __func__, 2, passage.m_chapter);
 
212
    evaluate (__LINE__, __func__, "3", passage.m_verse);
213
213
    // Next entry should be there since we moved to the previous one.
214
214
    passage = database.get_next (user);
215
 
    evaluate (__LINE__, __func__, 4, passage.book);
216
 
    evaluate (__LINE__, __func__, 5, passage.chapter);
217
 
    evaluate (__LINE__, __func__, "6", passage.verse);
 
215
    evaluate (__LINE__, __func__, 4, passage.m_book);
 
216
    evaluate (__LINE__, __func__, 5, passage.m_chapter);
 
217
    evaluate (__LINE__, __func__, "6", passage.m_verse);
218
218
    // Previous entry should be there.
219
219
    passage = database.get_previous (user);
220
 
    evaluate (__LINE__, __func__, 1, passage.book);
221
 
    evaluate (__LINE__, __func__, 2, passage.chapter);
222
 
    evaluate (__LINE__, __func__, "3", passage.verse);
 
220
    evaluate (__LINE__, __func__, 1, passage.m_book);
 
221
    evaluate (__LINE__, __func__, 2, passage.m_chapter);
 
222
    evaluate (__LINE__, __func__, "3", passage.m_verse);
223
223
    // Previous entry before previous entry should not be there.
224
224
    passage = database.get_previous (user);
225
 
    evaluate (__LINE__, __func__, 0, passage.book);
226
 
    evaluate (__LINE__, __func__, 0, passage.chapter);
227
 
    evaluate (__LINE__, __func__, "", passage.verse);
 
225
    evaluate (__LINE__, __func__, 0, passage.m_book);
 
226
    evaluate (__LINE__, __func__, 0, passage.m_chapter);
 
227
    evaluate (__LINE__, __func__, "", passage.m_verse);
228
228
    // Next entry should be there since we moved to the previous one.
229
229
    passage = database.get_next (user);
230
 
    evaluate (__LINE__, __func__, 4, passage.book);
231
 
    evaluate (__LINE__, __func__, 5, passage.chapter);
232
 
    evaluate (__LINE__, __func__, "6", passage.verse);
 
230
    evaluate (__LINE__, __func__, 4, passage.m_book);
 
231
    evaluate (__LINE__, __func__, 5, passage.m_chapter);
 
232
    evaluate (__LINE__, __func__, "6", passage.m_verse);
233
233
    // The entry next to the next entry should not be there.
234
234
    passage = database.get_next (user);
235
 
    evaluate (__LINE__, __func__, 0, passage.book);
236
 
    evaluate (__LINE__, __func__, 0, passage.chapter);
237
 
    evaluate (__LINE__, __func__, "", passage.verse);
 
235
    evaluate (__LINE__, __func__, 0, passage.m_book);
 
236
    evaluate (__LINE__, __func__, 0, passage.m_chapter);
 
237
    evaluate (__LINE__, __func__, "", passage.m_verse);
238
238
  }
239
239
  
240
240
  {
242
242
    refresh_sandbox (true);
243
243
    Database_Navigation database;
244
244
    database.create ();
245
 
    int time = filter_date_seconds_since_epoch ();
 
245
    int time = filter::date::seconds_since_epoch ();
246
246
    vector<Passage> passages;
247
247
 
248
248
    // Record three entries at an interval for this user.
262
262
    passages = database.get_history(user, -1);
263
263
    evaluate (__LINE__, __func__, 2, passages.size());
264
264
    if (passages.size() == 2) {
265
 
      evaluate (__LINE__, __func__, 4, passages[0].book);
266
 
      evaluate (__LINE__, __func__, 5, passages[0].chapter);
267
 
      evaluate (__LINE__, __func__, "6", passages[0].verse);
268
 
      evaluate (__LINE__, __func__, 1, passages[1].book);
269
 
      evaluate (__LINE__, __func__, 2, passages[1].chapter);
270
 
      evaluate (__LINE__, __func__, "3", passages[1].verse);
 
265
      evaluate (__LINE__, __func__, 4, passages[0].m_book);
 
266
      evaluate (__LINE__, __func__, 5, passages[0].m_chapter);
 
267
      evaluate (__LINE__, __func__, "6", passages[0].m_verse);
 
268
      evaluate (__LINE__, __func__, 1, passages[1].m_book);
 
269
      evaluate (__LINE__, __func__, 2, passages[1].m_chapter);
 
270
      evaluate (__LINE__, __func__, "3", passages[1].m_verse);
271
271
    }
272
272
    
273
273
    // At this stage there should not yet be any forward history.
281
281
    passages = database.get_history(user, -1);
282
282
    evaluate (__LINE__, __func__, 1, passages.size());
283
283
    if (passages.size() == 1) {
284
 
      evaluate (__LINE__, __func__, 1, passages[0].book);
285
 
      evaluate (__LINE__, __func__, 2, passages[0].chapter);
286
 
      evaluate (__LINE__, __func__, "3", passages[0].verse);
 
284
      evaluate (__LINE__, __func__, 1, passages[0].m_book);
 
285
      evaluate (__LINE__, __func__, 2, passages[0].m_chapter);
 
286
      evaluate (__LINE__, __func__, "3", passages[0].m_verse);
287
287
    }
288
288
    passages = database.get_history(user, 1);
289
289
    evaluate (__LINE__, __func__, 1, passages.size());
290
290
    if (passages.size() == 1) {
291
 
      evaluate (__LINE__, __func__, 7, passages[0].book);
292
 
      evaluate (__LINE__, __func__, 8, passages[0].chapter);
293
 
      evaluate (__LINE__, __func__, "9", passages[0].verse);
 
291
      evaluate (__LINE__, __func__, 7, passages[0].m_book);
 
292
      evaluate (__LINE__, __func__, 8, passages[0].m_chapter);
 
293
      evaluate (__LINE__, __func__, "9", passages[0].m_verse);
294
294
    }
295
295
 
296
296
    // Go backwards yet another step.
304
304
    passages = database.get_history(user, 1);
305
305
    evaluate (__LINE__, __func__, 2, passages.size());
306
306
    if (passages.size() == 2) {
307
 
      evaluate (__LINE__, __func__, 4, passages[0].book);
308
 
      evaluate (__LINE__, __func__, 5, passages[0].chapter);
309
 
      evaluate (__LINE__, __func__, "6", passages[0].verse);
310
 
      evaluate (__LINE__, __func__, 7, passages[1].book);
311
 
      evaluate (__LINE__, __func__, 8, passages[1].chapter);
312
 
      evaluate (__LINE__, __func__, "9", passages[1].verse);
 
307
      evaluate (__LINE__, __func__, 4, passages[0].m_book);
 
308
      evaluate (__LINE__, __func__, 5, passages[0].m_chapter);
 
309
      evaluate (__LINE__, __func__, "6", passages[0].m_verse);
 
310
      evaluate (__LINE__, __func__, 7, passages[1].m_book);
 
311
      evaluate (__LINE__, __func__, 8, passages[1].m_chapter);
 
312
      evaluate (__LINE__, __func__, "9", passages[1].m_verse);
313
313
    }
314
314
  }
315
315
 
318
318
    refresh_sandbox (true);
319
319
    Database_Navigation database;
320
320
    database.create ();
321
 
    int time = filter_date_seconds_since_epoch ();
 
321
    int time = filter::date::seconds_since_epoch ();
322
322
    vector<Passage> passages;
323
323
    
324
324
    // 1. Record several recent passages.
336
336
    refresh_sandbox (true);
337
337
    Database_Navigation database;
338
338
    database.create ();
339
 
    int time = filter_date_seconds_since_epoch ();
 
339
    int time = filter::date::seconds_since_epoch ();
340
340
    vector<Passage> passages;
341
341
    
342
342
    // 1. Record several old passages.