-
Notifications
You must be signed in to change notification settings - Fork 2
/
cabtests.cpp
634 lines (627 loc) · 44.6 KB
/
cabtests.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
#include "gtest/gtest.h"
#include "stringreg.h"
#include "tabletext.h"
#include <cstring>
TEST(CabrilloBasics,NewlineTests)
{
{
static const std::string expectedResult="This is a test\nof an old newline convention\n";
const std::string testSrcs[] {
"This is a test\n\rof an old newline convention\n\r",
"This is a test\r\nof an old newline convention\r\n",
"This is a test\rof an old newline convention\r",
expectedResult
};
for (const auto &str : testSrcs) {
EXPECT_EQ(expectedResult, cab::translateeol(str));
}
}
{
static const std::string expectedResult="\n\n\n\n\n";
const std::string testSrcs[] {
"\n\r\n\r\n\r\n\r\n\r",
"\r\n\r\n\r\n\r\n\r\n",
"\r\r\r\r\r",
expectedResult
};
for (const auto &str : testSrcs) {
EXPECT_EQ(expectedResult, cab::translateeol(str));
}
}
}
TEST(CabrilloBasics,SpaceLeadingTags)
{
static const std::string expectedResults=
"START-OF-LOG: 2.0\nARRL-SECTION: EB\nCALLSIGN: W1AW\nX-CQP-CALLSIGN: W1AW\nQSO:\nEND-OF-LOG:\n";
const std::string input=
" START-OF-LOG: 2.0\n ARRL-SECTION: EB\n CALLSIGN: W1AW\n \t X-CQP-CALLSIGN: W1AW\n QSO:\n END-OF-LOG:\n";
EXPECT_EQ(expectedResults,cab::removeSpaceBeforeTags(input));
}
TEST(CabrilloBasics, fixWrappedLines)
{
static const std::string expectedResults=
"NAME: Tom Epperly\nCATEGORY: SINGLE-OP ALL HIGH SSB\nADDRESS: Livermore, CA\nX-CQP-CALLSIGN: NS6T\nQSO: 14332 PH 2020-10-03 1601 NS6T 0001 TULA K3AFZ 0001 PA \nQSO: 14332 PH 2020-10-03 1601 NS6T 0002 TULA K4FTU 0001 NC ";
const std::string testSrcs[] {
expectedResults,
"NAME: Tom \nEpperly\nCATEGORY: SINGLE-OP ALL HIGH SSB\nADDRESS: Livermore, CA\nX-CQP-CALLSIGN: NS6T\nQSO: 14332 PH 2020-10-03 1601 NS6T 0001 TULA K3AFZ 0001 \nPA \nQSO: 14332 PH 2020-10-03 1601 NS6T 0002 TULA K4FTU 0001\n NC \n",
"NAME: Tom \nEpperly\nCATEGORY: SINGLE-OP A\nLL HIGH SSB\nADDRESS: Livermore\n, CA\nX-CQP-CALLSIGN: NS6T\nQSO: 14332 PH 2020-10-03 1601 NS6T 0001 TULA\n K3AFZ 0001 \nPA \nQSO: 14332 PH 2020-10-03 1601 NS6T 0002 TULA \n K4FTU 0001\n NC \n"
};
for(const auto &str : testSrcs) {
EXPECT_EQ(cab::fixWrappedLines(str), expectedResults);
}
}
TEST(CabrilloBasics,RemoveXQSOLines)
{
const std::string input("QSO: 14332 PH 2020-10-03 1601 NS6T 0001 TULA K3AFZ 0001 PA \nX-QSO: 14332 PH 2020-10-03 1601 NS6T 0002 TULA K4FTU 0001 NC \nQSO: 14332 PH 2020-10-03 1601 NS6T 0003 TULA K9DP 0001 IL \n");
const std::string expected("QSO: 14332 PH 2020-10-03 1601 NS6T 0001 TULA K3AFZ 0001 PA \nQSO: 14332 PH 2020-10-03 1601 NS6T 0003 TULA K9DP 0001 IL \n");
EXPECT_EQ(cab::removeXQSOLines(input), expected);
}
struct CabTableTest {
std::string text;
unsigned numRows;
unsigned numColumns;
unsigned maxWidth;
std::vector<std::size_t> columnStarts;
std::vector<std::size_t> columnEnds;
};
static const CabTableTest tableTests[] {
{
"QSO: 28000 CW 2014-10-04 1609 W1AW 001 ORAN KJ4AOM 5 KY\n\
QSO: 28000 CW 2014-10-04 1614 W1AW 002 ORAN N4JF 7 AL\n\
QSO: 21000 CW 2014-10-04 1631 W1AW 011 ORAN K0RC 25 MN\n\
QSO: 21000 CW 2014-10-04 1632 W1AW 012 ORAN NT2A 2 NY\n\
QSO: 21000 CW 2014-10-04 1632 W1AW 013 ORAN DL5MU 5 Federal Republic of Germany\n\
QSO: 21000 CW 2014-10-04 1633 W1AW 014 ORAN K4AMC 28 TN\n\
QSO: 21000 CW 2014-10-04 1634 W1AW 015 ORAN N4ZZ 41 TN\n\
QSO: 21000 CW 2014-10-04 1634 W1AW 016 ORAN N4JT 1 NC\n\
QSO: 21000 CW 2014-10-04 1635 W1AW 017 ORAN SP6JOE 1 Poland\n\
QSO: 21000 CW 2014-10-04 1637 W1AW 018 ORAN W3TB 11 VA\n\
QSO: 21000 CW 2014-10-04 1638 W1AW 019 ORAN K0PC 30 MN\n\
QSO: 21000 CW 2014-10-04 1639 W1AW 020 ORAN LY5W 6 Lithuania\n\
QSO: 21000 CW 2014-10-04 1639 W1AW 021 ORAN N5JB 40 TX\n\
QSO: 21000 CW 2014-10-04 1640 W1AW 022 ORAN K0EJ 45 TN\n\
QSO: 21000 CW 2014-10-04 1641 W1AW 023 ORAN DJ9AO 22 Federal Republic of Germany\n\
QSO: 21000 CW 2014-10-04 1641 W1AW 024 ORAN K2ZR 34 NY\n\
QSO: 21000 CW 2014-10-04 1644 W1AW 029 ORAN KE8G 30 OH\n\
QSO: 21000 CW 2014-10-04 1645 W1AW 030 ORAN OH6NIO 23 Finland\n\
QSO: 21000 CW 2014-10-04 1645 W1AW 031 ORAN KB9S 16 WI\n\
QSO: 21000 CW 2014-10-04 1646 W1AW 032 ORAN W5OOO 28 AR\n\
QSO: 21000 CW 2014-10-04 1650 W1AW 039 ORAN KE0G 33 MN\n\
QSO: 21000 CW 2014-10-04 1650 W1AW 040 ORAN WX4G 41 FL\n\
QSO: 21000 CW 2014-10-04 1651 W1AW 041 ORAN OM3DX 18 Slovak Republic\n\
QSO: 21000 CW 2014-10-04 1652 W1AW 042 ORAN K9CT 83 IL\n\
QSO: 21000 CW 2014-10-04 1653 W1AW 043 ORAN AB0BM 17 IA\n\
QSO: 21000 CW 2014-10-04 1656 W1AW 044 ORAN N8FF 32 TN\n\
QSO: 21000 CW 2014-10-04 1709 W1AW 056 ORAN W9RE 31 IN\n\
QSO: 21000 CW 2014-10-04 1710 W1AW 057 ORAN N5YE 33 LA\n\
QSO: 21000 CW 2014-10-04 1710 W1AW 058 ORAN K1RO 68 NH\n\
QSO: 21000 CW 2014-10-04 1711 W1AW 059 ORAN N4VV 35 TN\n\
QSO: 21000 CW 2014-10-04 1712 W1AW 060 ORAN W3PN 3 PA\n\
QSO: 21000 CW 2014-10-04 1713 W1AW 061 ORAN K2SX 57 SC\n\
QSO: 21000 CW 2014-10-04 1714 W1AW 062 ORAN DL5ME 24 Federal Republic of Germany\n\
QSO: 21000 CW 2014-10-04 1715 W1AW 063 ORAN AK7O 17 UT\n\
QSO: 21000 CW 2014-10-04 1715 W1AW 064 ORAN K1TR 53 NH\n\
QSO: 21000 CW 2014-10-04 1715 W1AW 065 ORAN VE3KZ 77 ON\n\
QSO: 21000 CW 2014-10-04 1716 W1AW 066 ORAN KJ9C 23 TN\n\
QSO: 21000 CW 2014-10-04 1716 W1AW 067 ORAN K0IO 32 IA\n\
QSO: 21000 CW 2014-10-04 1724 W1AW 074 ORAN K7SV 64 VA\n\
QSO: 21000 CW 2014-10-04 1724 W1AW 075 ORAN NS0R 8 KS\n\
QSO: 21000 CW 2014-10-04 1725 W1AW 076 ORAN NA3V 25 PA\n\
QSO: 21000 CW 2014-10-04 1729 W1AW 077 ORAN SP5SA 31 Poland\n\
QSO: 21000 CW 2014-10-04 1730 W1AW 078 ORAN VE3FJ 7 ON\n\
QSO: 21000 CW 2014-10-04 1730 W1AW 079 ORAN K2MK 32 NJ\n\
QSO: 21000 CW 2014-10-04 1731 W1AW 080 ORAN SM5CIL 31 Sweden\n\
QSO: 21000 CW 2014-10-04 1733 W1AW 081 ORAN RV1CC 29 European Russia\n\
QSO: 21000 CW 2014-10-04 1734 W1AW 082 ORAN K7HBN 27 WA\n\
QSO: 21000 CW 2014-10-04 1734 W1AW 083 ORAN OK2PAY 44 Czech Republic\n\
QSO: 21000 CW 2014-10-04 1735 W1AW 084 ORAN W2OR 33 FL\n\
QSO: 21000 CW 2014-10-04 1736 W1AW 085 ORAN W7GKF 65 WA\n\
QSO: 21000 CW 2014-10-04 1739 W1AW 089 ORAN NA4K 109 TN\n\
QSO: 21000 CW 2014-10-04 1741 W1AW 090 ORAN K0NE 31 NE\n\
QSO: 21000 CW 2014-10-04 1744 W1AW 091 ORAN GM7R 59 Scotland\n\
QSO: 21000 CW 2014-10-04 1745 W1AW 092 ORAN N2SO 9 NY\n\
QSO: 21000 CW 2014-10-04 1745 W1AW 093 ORAN W4OX 53 FL\n\
QSO: 21000 CW 2014-10-04 1745 W1AW 094 ORAN KS5H 30 TX\n\
QSO: 21000 CW 2014-10-04 1747 W1AW 095 ORAN KC8JNL 3 MI\n\
QSO: 21000 CW 2014-10-04 1749 W1AW 096 ORAN VE6UX 31 AB\n\
QSO: 21000 CW 2014-10-04 1750 W1AW 097 ORAN F5FJ 15 France\n\
QSO: 21000 CW 2014-10-04 1751 W1AW 098 ORAN DL1NKS 41 Federal Republic of Germany\n\
QSO: 21000 CW 2014-10-04 1752 W1AW 099 ORAN KO1U 52 MA\n\
QSO: 21000 CW 2014-10-04 1753 W1AW 100 ORAN YT9M 40 Serbia\n\
QSO: 21000 CW 2014-10-04 1753 W1AW 101 ORAN K4DJ 15 NC\n\
QSO: 21000 CW 2014-10-04 1758 W1AW 107 ORAN K2DFC 76 NJ\n\
QSO: 21000 CW 2014-10-04 1759 W1AW 108 ORAN W0YJT 37 KS\n\
QSO: 21000 CW 2014-10-04 1759 W1AW 109 ORAN K4CMS 31 KY\n\
QSO: 21000 CW 2014-10-04 1801 W1AW 110 ORAN OK2EC 31 Czech Republic\n\
QSO: 21000 CW 2014-10-04 1802 W1AW 111 ORAN WA3HAE 60 PA\n\
QSO: 21000 CW 2014-10-04 1804 W1AW 112 ORAN K9XZ 49 IL\n\
QSO: 21000 CW 2014-10-04 1805 W1AW 113 ORAN LY7Z 35 Lithuania\n\
QSO: 21000 CW 2014-10-04 1806 W1AW 114 ORAN VE3TW 48 ON\n\
QSO: 21000 CW 2014-10-04 1807 W1AW 115 ORAN SP9LJD 59 Poland\n\
QSO: 21000 CW 2014-10-04 1808 W1AW 116 ORAN NE8J 35 MI\n\
QSO: 21000 CW 2014-10-04 1809 W1AW 117 ORAN NT6X 120 ORAN\n\
QSO: 21000 CW 2014-10-04 1810 W1AW 118 ORAN KI0I 90 MO\n\
QSO: 21000 CW 2014-10-04 1810 W1AW 119 ORAN VE1OP 72 MR\n\
QSO: 21000 CW 2014-10-04 1811 W1AW 120 ORAN N9AUG 45 OH\n\
QSO: 21000 CW 2014-10-04 1811 W1AW 121 ORAN K5YAA 114 OK\n\
QSO: 21000 CW 2014-10-04 1814 W1AW 122 ORAN HA3OK 13 Hungary\n\
QSO: 21000 CW 2014-10-04 1814 W1AW 123 ORAN N1KWF 102 NH\n\
QSO: 21000 CW 2014-10-04 1816 W1AW 124 ORAN OM5NL 37 Slovak Republic\n\
QSO: 21000 CW 2014-10-04 1816 W1AW 125 ORAN K7GM 29 NY\n\
QSO: 21000 CW 2014-10-04 1816 W1AW 126 ORAN N3NZ 32 PA\n\
QSO: 21000 CW 2014-10-04 1818 W1AW 127 ORAN HG8W 35 Hungary\n\
QSO: 21000 CW 2014-10-04 1821 W1AW 128 ORAN R7AL 9 European Russia\n\
QSO: 28000 CW 2014-10-04 1827 W1AW 129 ORAN K4BAI 112 GA\n\
QSO: 28000 CW 2014-10-04 1829 W1AW 130 ORAN KK4HEG 33 NC\n\
QSO: 28000 CW 2014-10-04 1830 W1AW 131 ORAN AA3B 157 PA\n\
QSO: 28000 CW 2014-10-04 1830 W1AW 132 ORAN K1ZZI 130 GA\n\
QSO: 28000 PH 2014-10-04 1932 W1AW 183 ORAN N4OX 120 FL\n\
QSO: 21000 PH 2014-10-04 1940 W1AW 188 ORAN WA0LJM 83 MN\n\
QSO: 21000 PH 2014-10-04 1941 W1AW 189 ORAN VE7HWG 1 BC\n\
QSO: 21000 PH 2014-10-04 1942 W1AW 190 ORAN KD5J 58 AR\n\
QSO: 21000 PH 2014-10-04 1943 W1AW 191 ORAN NW0M 208 MO\n\
QSO: 21000 PH 2014-10-04 1943 W1AW 192 ORAN W6UE 283 LANG\n\
QSO: 21000 PH 2014-10-04 1944 W1AW 193 ORAN K0HC 265 KS\n\
QSO: 21000 PH 2014-10-04 1945 W1AW 194 ORAN SP9LJD 112 Poland\n\
QSO: 21000 PH 2014-10-04 1946 W1AW 195 ORAN KG6MC 38 SC\n\
QSO: 21000 PH 2014-10-04 1947 W1AW 196 ORAN WB9VGO 21 IL\n\
QSO: 21000 PH 2014-10-04 1951 W1AW 204 ORAN WA3WNT 38 PA\n\
QSO: 21000 PH 2014-10-04 1952 W1AW 205 ORAN K6ND 27 MA\n\
QSO: 21000 PH 2014-10-04 1952 W1AW 206 ORAN W4ANT 101 SC\n\
QSO: 21000 PH 2014-10-04 1954 W1AW 207 ORAN DL1BKT 07 Federal Republic of Germany\n\
QSO: 21000 PH 2014-10-04 1955 W1AW 208 ORAN VE6IVN 71 AB\n\
QSO: 21000 PH 2014-10-04 1955 W1AW 209 ORAN KC0GM 92 IA\n\
QSO: 21000 PH 2014-10-04 1956 W1AW 210 ORAN WB4CTX 69 KY\n\
QSO: 21000 PH 2014-10-04 1957 W1AW 211 ORAN DL5ME 107 Federal Republic of Germany\n\
QSO: 21000 PH 2014-10-04 1957 W1AW 212 ORAN K5KPE 81 AR\n\
QSO: 21000 PH 2014-10-04 1958 W1AW 213 ORAN WY0V 28 IA\n\
QSO: 21000 PH 2014-10-04 1958 W1AW 214 ORAN K4KDJ 48 VA\n\
QSO: 21000 PH 2014-10-04 2000 W1AW 217 ORAN N5II 122 LA\n\
QSO: 21000 PH 2014-10-04 2000 W1AW 218 ORAN PA2LO 14 Netherlands\n\
QSO: 21000 PH 2014-10-04 2002 W1AW 219 ORAN DF5XQ 7 Federal Republic of Germany\n\
QSO: 21000 PH 2014-10-04 2002 W1AW 220 ORAN K8BF 99 OH\n\
QSO: 21000 PH 2014-10-04 2003 W1AW 221 ORAN W1XX 8 RI\n\
QSO: 21000 PH 2014-10-04 2003 W1AW 222 ORAN KF5FRT 42 TX\n\
QSO: 21000 PH 2014-10-04 2004 W1AW 223 ORAN VE1BVD 24 MR\n\
QSO: 21000 PH 2014-10-04 2004 W1AW 224 ORAN N8KR 193 OH\n\
QSO: 21000 PH 2014-10-04 2005 W1AW 225 ORAN K3WW 227 PA\n\
QSO: 21000 PH 2014-10-04 2005 W1AW 226 ORAN HA3NU 85 Hungary\n\
QSO: 21000 PH 2014-10-04 2006 W1AW 227 ORAN WA2MCR 23 NY\n\
QSO: 21000 PH 2014-10-04 2006 W1AW 228 ORAN VE3RZ 184 ON\n\
QSO: 21000 PH 2014-10-04 2007 W1AW 229 ORAN F2GL 25 France\n\
QSO: 21000 PH 2014-10-04 2008 W1AW 230 ORAN AA9RN 180 WI\n\
QSO: 21000 PH 2014-10-04 2008 W1AW 231 ORAN VE7BC 1 BC\n\
QSO: 21000 PH 2014-10-04 2009 W1AW 232 ORAN K3DQB 53 PA\n\
QSO: 21000 PH 2014-10-04 2010 W1AW 233 ORAN K2DFC 146 NJ\n\
QSO: 21000 PH 2014-10-04 2011 W1AW 234 ORAN KE4ZUN 10 NC\n\
QSO: 21000 PH 2014-10-04 2011 W1AW 235 ORAN VA6NJK 122 AB\n\
QSO: 21000 PH 2014-10-04 2013 W1AW 236 ORAN OK1BIL 6 Czech Republic\n\
QSO: 21000 PH 2014-10-04 2014 W1AW 237 ORAN VE8GER 20 NT\n\
QSO: 21000 PH 2014-10-04 2016 W1AW 238 ORAN W1CTN 162 CT\n\
QSO: 21000 PH 2014-10-04 2019 W1AW 239 ORAN W2MH 8 NY\n\
QSO: 21000 PH 2014-10-04 2020 W1AW 240 ORAN GM7R 131 Scotland\n\
QSO: 21000 PH 2014-10-04 2022 W1AW 241 ORAN KM4RO 98 KY\n\
QSO: 21000 PH 2014-10-04 2024 W1AW 242 ORAN DL2MIJ 22 Federal Republic of Germany\n\
QSO: 21000 PH 2014-10-04 2025 W1AW 243 ORAN W8JPF 209 OH\n\
QSO: 21000 PH 2014-10-04 2026 W1AW 244 ORAN KD4QMY 22 GA\n\
QSO: 21000 PH 2014-10-04 2026 W1AW 245 ORAN N1CC 216 TX\n\
QSO: 21000 PH 2014-10-04 2028 W1AW 246 ORAN AB4SF 90 VA\n\
QSO: 21000 PH 2014-10-04 2028 W1AW 247 ORAN WD0T 81 SD\n\
QSO: 21000 PH 2014-10-04 2030 W1AW 248 ORAN ON3AR 45 Belgium\n\
QSO: 21000 PH 2014-10-04 2032 W1AW 249 ORAN W5IGE/AE 1 MS\n\
QSO: 21000 PH 2014-10-04 2106 W1AW 250 ORAN KC0WCF 17 MN\n\
QSO: 21000 PH 2014-10-04 2106 W1AW 251 ORAN AA4R 53 MI\n\
QSO: 21000 PH 2014-10-04 2116 W1AW 263 ORAN W9PA 248 IN\n\
QSO: 21000 PH 2014-10-04 2117 W1AW 264 ORAN AI4DB 69 TN\n\
QSO: 21000 PH 2014-10-04 2119 W1AW 265 ORAN WA3RNC 7 PA\n\
QSO: 21000 PH 2014-10-04 2120 W1AW 266 ORAN KB1WEA 5 ME\n\
QSO: 21000 PH 2014-10-04 2121 W1AW 267 ORAN VE4VT 45 MB\n\
QSO: 21000 PH 2014-10-04 2121 W1AW 268 ORAN WR1E 3 ME\n\
QSO: 21000 CW 2014-10-04 2129 W1AW 269 ORAN F6BEE 17 France\n\
QSO: 21000 CW 2014-10-04 2130 W1AW 270 ORAN KA2FHM 22 NY\n\
QSO: 21000 CW 2014-10-04 2131 W1AW 271 ORAN K9HXO 35 FL\n\
QSO: 21000 CW 2014-10-04 2132 W1AW 272 ORAN N0EO 14 MN\n\
QSO: 28000 PH 2014-10-04 2244 W1AW 328 ORAN KE1D 25 MN\n\
QSO: 28000 PH 2014-10-04 2247 W1AW 329 ORAN KC9YIT 13 IL\n\
QSO: 28000 PH 2014-10-04 2248 W1AW 330 ORAN KC9YLE 1 WI\n\
QSO: 28000 PH 2014-10-04 2249 W1AW 331 ORAN WB9VGO 27 IL\n\
QSO: 28000 PH 2014-10-04 2250 W1AW 332 ORAN K8QWY 19 OH\n\
QSO: 28000 PH 2014-10-04 2251 W1AW 333 ORAN KI0HA 27 MO\n\
QSO: 28000 PH 2014-10-04 2251 W1AW 334 ORAN KL7LT 63 AK\n\
QSO: 28000 PH 2014-10-04 2252 W1AW 335 ORAN W6KK 14 SBER\n\
QSO: 28000 PH 2014-10-04 2252 W1AW 336 ORAN KC9IRV 66 IL\n\
QSO: 28000 PH 2014-10-04 2253 W1AW 337 ORAN KK4PKR 33 AL\n\
QSO: 28000 PH 2014-10-04 2254 W1AW 338 ORAN KD0LRG 33 IA\n\
QSO: 28000 PH 2014-10-04 2258 W1AW 339 ORAN KC9YIJ 17 IL\n\
QSO: 28000 PH 2014-10-04 2300 W1AW 340 ORAN KJ4AOM 80 KY\n\
QSO: 28000 PH 2014-10-04 2300 W1AW 341 ORAN N1CC 316 TX\n\
QSO: 28000 PH 2014-10-04 2300 W1AW 342 ORAN N0EO 43 MN\n\
QSO: 14000 CW 2014-10-05 0013 W1AW 392 ORAN K0IO 183 IA\n\
QSO: 14000 CW 2014-10-05 0014 W1AW 393 ORAN N1KWF 296 NH\n\
QSO: 14000 CW 2014-10-05 0015 W1AW 394 ORAN WS7L 41 OR\n\
QSO: 14000 CW 2014-10-05 0015 W1AW 395 ORAN WQ3N 53 PA\n\
QSO: 14000 CW 2014-10-05 0017 W1AW 396 ORAN N5JB 387 TX\n\
QSO: 14000 CW 2014-10-05 0018 W1AW 397 ORAN K6JEB 246 CCOS\n\
QSO: 14000 CW 2014-10-05 0019 W1AW 398 ORAN W7WHY 68 OR\n\
QSO: 14000 CW 2014-10-05 0023 W1AW 399 ORAN K3WU 81 PA\n\
QSO: 14000 CW 2014-10-05 0023 W1AW 400 ORAN NN6CH 363 ORAN\n\
QSO: 14000 CW 2014-10-05 0025 W1AW 401 ORAN KS4YX 101 SC\n\
QSO: 14000 CW 2014-10-05 0025 W1AW 402 ORAN N9CIQ 82 WI\n\
QSO: 14000 CW 2014-10-05 0026 W1AW 403 ORAN K5YAA 394 OK\n\
QSO: 14000 CW 2014-10-05 0028 W1AW 404 ORAN WA3AAN 46 PA\n\
QSO: 14000 CW 2014-10-05 0029 W1AW 405 ORAN VE3GFN 234 ON\n\
QSO: 14000 CW 2014-10-05 0030 W1AW 406 ORAN N4DU 132 GA\n\
QSO: 14000 CW 2014-10-05 0034 W1AW 407 ORAN NW8U 97 WV\n\
QSO: 14000 CW 2014-10-05 0036 W1AW 408 ORAN WN8R 191 OH\n\
QSO: 14000 CW 2014-10-05 0037 W1AW 409 ORAN W1UE 476 MA\n\
QSO: 14000 CW 2014-10-05 0037 W1AW 410 ORAN WX4G 312 FL\n\
QSO: 14000 CW 2014-10-05 0038 W1AW 411 ORAN K1GU 98 TN\n\
QSO: 14000 CW 2014-10-05 0039 W1AW 412 ORAN KR6N 79 ELDO\n\
QSO: 14000 CW 2014-10-05 0041 W1AW 413 ORAN N6G 385 TUOL\n\
QSO: 14000 CW 2014-10-05 0043 W1AW 414 ORAN K6LRN 755 ELDO\n\
QSO: 14000 CW 2014-10-05 0045 W1AW 415 ORAN K4ZGB/6 140 NAPA\n\
QSO: 14000 CW 2014-10-05 0626 W1AW 575 ORAN YO2BBX 3 Romania\n\
QSO: 14000 CW 2014-10-05 0627 W1AW 576 ORAN SP6NIC 44 Poland\n\
QSO: 14000 CW 2014-10-05 0632 W1AW 577 ORAN K8BF 102 OH\n\
QSO: 14000 CW 2014-10-05 0635 W1AW 578 ORAN K4MM 43 FL\n\
QSO: 3500 PH 2014-10-05 0648 W1AW 579 ORAN N6A 2105 ALPI\n\
QSO: 3500 PH 2014-10-05 0650 W1AW 580 ORAN K6UN 271 INYO\n\
QSO: 3500 PH 2014-10-05 0651 W1AW 581 ORAN K6XX 1752 SCRU\n\
QSO: 3500 PH 2014-10-05 0653 W1AW 582 ORAN N6ZFO 1247 LAKE\n\
QSO: 3500 PH 2014-10-05 0654 W1AW 583 ORAN K6ARP 229 MADE\n\
QSO: 3500 PH 2014-10-05 0655 W1AW 584 ORAN N6RC 682 TRIN\n\
QSO: 3500 PH 2014-10-05 0700 W1AW 585 ORAN N6ER 245 ORAN\n\
QSO: 3500 PH 2014-10-05 0701 W1AW 586 ORAN N6HC 1352 ORAN\n\
QSO: 3500 CW 2014-10-05 0720 W1AW 597 ORAN K6XX 1783 SCRU\n\
QSO: 3500 CW 2014-10-05 0722 W1AW 598 ORAN K6M 159 MODO\n\
QSO: 3500 CW 2014-10-05 0723 W1AW 599 ORAN N6HC 1379 ORAN\n\
QSO: 3500 CW 2014-10-05 0725 W1AW 600 ORAN WA6URY 87 LANG\n\
QSO: 3500 CW 2014-10-05 0725 W1AW 601 ORAN W6OPO 112 SCLA\n\
QSO: 7000 CW 2014-10-05 0730 W1AW 602 ORAN W6PZ 1462 SONO\n\
QSO: 7000 CW 2014-10-05 0733 W1AW 603 ORAN W6OAT 1279 SMAT\n\
QSO: 7000 CW 2014-10-05 0735 W1AW 604 ORAN K5TR 1001 TX\n\
QSO: 7000 CW 2014-10-05 0743 W1AW 605 ORAN N6O 822 CCOS\n\
QSO: 14000 CW 2014-10-05 1419 W1AW 606 ORAN KM6Z 797 LANG\n\
QSO: 14000 CW 2014-10-05 1419 W1AW 607 ORAN SP9LJD 240 Poland\n\
QSO: 14000 CW 2014-10-05 1420 W1AW 608 ORAN N6AR 285 FL\n\
QSO: 14000 CW 2014-10-05 1420 W1AW 609 ORAN N8UM 604 TN\n\
QSO: 14000 CW 2014-10-05 1422 W1AW 610 ORAN W5PQ 60 LA\n\
QSO: 14000 CW 2014-10-05 1422 W1AW 611 ORAN K1ZZI 384 GA\n\
QSO: 14000 CW 2014-10-05 1423 W1AW 612 ORAN W2LE 293 NJ\n\
QSO: 14000 CW 2014-10-05 1423 W1AW 613 ORAN W4OX 187 FL\n\
QSO: 14000 CW 2014-10-05 1424 W1AW 614 ORAN VE3TW 292 ON\n\
QSO: 14000 CW 2014-10-05 1424 W1AW 615 ORAN NW0M 421 MO\n\
QSO: 14000 CW 2014-10-05 1425 W1AW 616 ORAN NA4K 564 TN\n\
QSO: 14000 CW 2014-10-05 1425 W1AW 617 ORAN GM7R 239 Scotland\n\
QSO: 14000 CW 2014-10-05 1426 W1AW 618 ORAN K4WW 48 KY\n\
QSO: 14000 CW 2014-10-05 1426 W1AW 619 ORAN AK7O 130 UT\n\
QSO: 14000 CW 2014-10-05 1427 W1AW 620 ORAN W1CTN 317 CT\n\
QSO: 14000 CW 2014-10-05 1428 W1AW 621 ORAN W9OA 262 IL\n\
QSO: 14000 CW 2014-10-05 1428 W1AW 622 ORAN N4PN 758 GA\n\
QSO: 14000 CW 2014-10-05 1429 W1AW 623 ORAN K2ZR 237 NY\n\
QSO: 14000 CW 2014-10-05 1429 W1AW 624 ORAN VE3RZ 589 ON\n\
QSO: 14000 CW 2014-10-05 1430 W1AW 625 ORAN VE2FK 33 QC\n\
QSO: 14000 CW 2014-10-05 1430 W1AW 626 ORAN VE4VT 214 MB\n\
QSO: 14000 CW 2014-10-05 1431 W1AW 627 ORAN K0TZ 37 CO\n\
QSO: 14000 CW 2014-10-05 1431 W1AW 628 ORAN K4HC 175 NC\n\
QSO: 14000 CW 2014-10-05 1432 W1AW 629 ORAN N3KR 130 PA\n\
QSO: 14000 CW 2014-10-05 1433 W1AW 630 ORAN WA9LEY 126 IL\n\
QSO: 14000 CW 2014-10-05 1433 W1AW 631 ORAN K0HNC 138 KS\n\
QSO: 14000 CW 2014-10-05 1434 W1AW 632 ORAN OK2PAY 116 Czech Republic\n\
QSO: 14000 CW 2014-10-05 1435 W1AW 633 ORAN DK2OY 24 Federal Republic of Germany\n\
QSO: 14000 CW 2014-10-05 1436 W1AW 634 ORAN KC9TQR 22 WI\n\
QSO: 14000 CW 2014-10-05 1436 W1AW 635 ORAN W5OOO 122 AR\n\
QSO: 14000 CW 2014-10-05 1437 W1AW 636 ORAN S53EO 34 Slovenia\n\
QSO: 14000 CW 2014-10-05 1437 W1AW 637 ORAN N1CC 603 TX\n\
QSO: 14000 CW 2014-10-05 1438 W1AW 638 ORAN AA4FU 66 NC\n\
QSO: 14000 CW 2014-10-05 1440 W1AW 639 ORAN N8II 37 WV\n\
QSO: 14000 CW 2014-10-05 1441 W1AW 640 ORAN VE3NZ 203 ON\n\
QSO: 14000 CW 2014-10-05 1442 W1AW 641 ORAN K0OU 357 MO\n\
QSO: 14000 CW 2014-10-05 1447 W1AW 642 ORAN VE6UX 135 AB\n\
QSO: 14000 CW 2014-10-05 1449 W1AW 643 ORAN K6YK 29 SJOA\n\
QSO: 14000 CW 2014-10-05 1450 W1AW 644 ORAN W3KWH 234 PA\n\
QSO: 14000 CW 2014-10-05 1451 W1AW 645 ORAN DK2CF 58 Federal Republic of Germany\n\
QSO: 14000 CW 2014-10-05 1454 W1AW 646 ORAN KN3A 2 PA\n\
QSO: 14000 CW 2014-10-05 1455 W1AW 647 ORAN K8MFO 259 OH\n\
QSO: 14000 CW 2014-10-05 1456 W1AW 648 ORAN NF8J 54 MI\n\
QSO: 14000 CW 2014-10-05 1457 W1AW 649 ORAN K4AMC 108 TN\n\
QSO: 14000 CW 2014-10-05 1457 W1AW 650 ORAN W1TO 81 MA\n\
QSO: 14000 CW 2014-10-05 1458 W1AW 651 ORAN KI7Y 285 OR\n\
QSO: 14000 CW 2014-10-05 1459 W1AW 652 ORAN N6TH 308 SCRU\n\
QSO: 14000 CW 2014-10-05 1500 W1AW 653 ORAN W6NUC 12 SCRU\n\
QSO: 14000 CW 2014-10-05 1515 W1AW 664 ORAN N4ARO 293 TN\n\
QSO: 14000 CW 2014-10-05 1516 W1AW 665 ORAN K2TV 19 NY\n\
QSO: 14000 CW 2014-10-05 1516 W1AW 666 ORAN W9XT 267 WI\n\
QSO: 14000 CW 2014-10-05 1518 W1AW 667 ORAN N3NZ 77 PA\n\
QSO: 14000 CW 2014-10-05 1519 W1AW 668 ORAN W4LT 90 FL\n\
QSO: 14000 CW 2014-10-05 1519 W1AW 669 ORAN HA3UU 6 Hungary\n\
QSO: 14000 CW 2014-10-05 1520 W1AW 670 ORAN N9CK 115 WI\n\
QSO: 14000 CW 2014-10-05 1520 W1AW 671 ORAN W8IDM 47 OH\n\
QSO: 14000 CW 2014-10-05 1522 W1AW 672 ORAN WB0PYF 67 MO\n\
QSO: 14000 CW 2014-10-05 1523 W1AW 673 ORAN N3CZ 32 NC\n\
QSO: 14000 CW 2014-10-05 1524 W1AW 674 ORAN K6XX 2058 SCRU\n\
QSO: 14000 CW 2014-10-05 1525 W1AW 675 ORAN K9OM 688 WI\n\
QSO: 14000 CW 2014-10-05 1525 W1AW 676 ORAN W1AW/6 835 SCLA\n\
QSO: 14000 CW 2014-10-05 1526 W1AW 677 ORAN AI6II 23 MARN\n\
QSO: 14000 CW 2014-10-05 1527 W1AW 678 ORAN VE1OP 163 MR\n\
QSO: 14000 CW 2014-10-05 1529 W1AW 679 ORAN W6JTI 669 HUMB\n\
QSO: 14000 CW 2014-10-05 1531 W1AW 680 ORAN K6D 676 DELN\n\
QSO: 14000 CW 2014-10-05 1532 W1AW 681 ORAN N6YEU 1028 GLEN\n\
QSO: 14000 PH 2014-10-05 1533 W1AW 682 ORAN N9RV 294 MT\n\
QSO: 14000 PH 2014-10-05 1536 W1AW 683 ORAN W4RLW 238 SISK\n\
QSO: 14000 PH 2014-10-05 1538 W1AW 684 ORAN KE7LWW 18 WA\n\
QSO: 14000 PH 2014-10-05 1539 W1AW 685 ORAN K9OM 693 WI\n\
QSO: 14000 PH 2014-10-05 1539 W1AW 686 ORAN VE6LK/7 011 BC\n\
QSO: 14000 PH 2014-10-05 1541 W1AW 687 ORAN KG7ZK 19 OR\n\
QSO: 14000 PH 2014-10-05 1542 W1AW 688 ORAN KE6JNO 78 UT\n\
QSO: 14000 PH 2014-10-05 1543 W1AW 689 ORAN K6PVA 405 SHAS\n\
QSO: 14000 PH 2014-10-05 1544 W1AW 690 ORAN KF6ZB 26 ORAN\n\
QSO: 14000 PH 2014-10-05 1546 W1AW 691 ORAN N6YEU 1043 GLEN\n\
QSO: 14000 PH 2014-10-05 1548 W1AW 692 ORAN KI6WOX 128 BUTT\n\
QSO: 28000 PH 2014-10-05 1608 W1AW 693 ORAN G3MXH 198 England\n\
QSO: 28000 PH 2014-10-05 1611 W1AW 694 ORAN NF4A 506 FL\n\
QSO: 28000 PH 2014-10-05 1611 W1AW 695 ORAN VE3CV 258 ON\n\
QSO: 28000 PH 2014-10-05 1612 W1AW 696 ORAN W3KWH 263 PA\n\
QSO: 28000 PH 2014-10-05 1613 W1AW 697 ORAN VA3DF 463 ON\n\
QSO: 28000 PH 2014-10-05 1613 W1AW 698 ORAN N8UM 658 TN\n\
QSO: 28000 PH 2014-10-05 1615 W1AW 699 ORAN W4KW 234 TN\n\
QSO: 28000 PH 2014-10-05 1616 W1AW 700 ORAN K4CMC 9 TN\n\
QSO: 28000 PH 2014-10-05 1620 W1AW 701 ORAN KK4KW 52 TN\n\
QSO: 28000 PH 2014-10-05 1620 W1AW 702 ORAN KC9RAK 2 IN\n\
QSO: 28000 PH 2014-10-05 1623 W1AW 703 ORAN KC9WAV 86 IN\n\
QSO: 28000 PH 2014-10-05 1623 W1AW 704 ORAN K2ITT 15 NJ\n\
QSO: 28000 PH 2014-10-05 1624 W1AW 705 ORAN MM0TFU 04 Scotland\n\
QSO: 28000 PH 2014-10-05 1625 W1AW 706 ORAN K4NM 17 AL\n\
QSO: 28000 PH 2014-10-05 1625 W1AW 707 ORAN KS4YX 121 SC\n\
QSO: 28000 PH 2014-10-05 1629 W1AW 708 ORAN K9PCU 35 IL\n\
QSO: 28000 PH 2014-10-05 1630 W1AW 709 ORAN KJ8O 143 MI\n\
QSO: 28000 PH 2014-10-05 1630 W1AW 710 ORAN N8FF 288 TN\n\
QSO: 28000 PH 2014-10-05 1631 W1AW 711 ORAN N4VLQ 203 NC\n\
QSO: 28000 PH 2014-10-05 1632 W1AW 712 ORAN SP9LJD 315 Poland\n\
QSO: 28000 PH 2014-10-05 1632 W1AW 713 ORAN K4CMS 228 KY\n\
QSO: 28000 PH 2014-10-05 1632 W1AW 714 ORAN N4HID 76 KY\n\
QSO: 28000 PH 2014-10-05 1633 W1AW 715 ORAN W9BU 84 IN\n\
QSO: 28000 PH 2014-10-05 1635 W1AW 716 ORAN AC8JF 126 MI\n\
QSO: 28000 PH 2014-10-05 1637 W1AW 717 ORAN KI4GGJ 8 GA\n\
QSO: 28000 PH 2014-10-05 1639 W1AW 718 ORAN DK2CF 102 Federal Republic of Germany\n\
QSO: 28000 PH 2014-10-05 1641 W1AW 719 ORAN WB4CTX 133 KY\n\
QSO: 28000 PH 2014-10-05 1643 W1AW 720 ORAN KI6PMD 79 LANG\n\
QSO: 28000 PH 2014-10-05 1647 W1AW 721 ORAN KG4FSR 1 NC\n\
QSO: 28000 PH 2014-10-05 1650 W1AW 722 ORAN ND6M 07 TN\n\
QSO: 28000 PH 2014-10-05 1651 W1AW 723 ORAN WD9CKY 1 IL\n\
QSO: 28000 PH 2014-10-05 1652 W1AW 724 ORAN KC9NFJ 22 WI\n\
QSO: 28000 PH 2014-10-05 1702 W1AW 733 ORAN KJ4LTA 212 AL\n\
QSO: 28000 PH 2014-10-05 1702 W1AW 734 ORAN KB9SGO 3 WI\n\
QSO: 28000 PH 2014-10-05 1703 W1AW 735 ORAN WA7DIA 56 GA\n\
QSO: 28000 PH 2014-10-05 1705 W1AW 736 ORAN KM4AEM 36 TN\n\
QSO: 28000 PH 2014-10-05 1705 W1AW 737 ORAN KC9EOQ 152 IL\n\
QSO: 28000 PH 2014-10-05 1706 W1AW 738 ORAN DL4MP 2 Federal Republic of Germany\n\
QSO: 28000 PH 2014-10-05 1707 W1AW 739 ORAN W9XT 296 WI\n\
QSO: 28000 PH 2014-10-05 1709 W1AW 740 ORAN DH8BQA 21 Federal Republic of Germany\n\
QSO: 28000 PH 2014-10-05 1709 W1AW 741 ORAN 9A2EU 60 Croatia\n\
QSO: 28000 PH 2014-10-05 1710 W1AW 742 ORAN G4FAL 439 England\n\
QSO: 28000 PH 2014-10-05 1711 W1AW 743 ORAN AC9FL 189 IL\n\
QSO: 28000 PH 2014-10-05 1711 W1AW 744 ORAN WA8LE 79 MI\n\
QSO: 28000 PH 2014-10-05 1712 W1AW 745 ORAN DF2RG 40 Federal Republic of Germany\n\
QSO: 28000 PH 2014-10-05 1714 W1AW 746 ORAN IK2YCW 03 Italy\n\
QSO: 28000 PH 2014-10-05 1715 W1AW 747 ORAN SM7LPY 3 Sweden\n\
QSO: 28000 PH 2014-10-05 1716 W1AW 748 ORAN LY5W 90 Lithuania\n\
QSO: 28000 CW 2014-10-05 1718 W1AW 749 ORAN KI0F 169 MN\n\
QSO: 28000 CW 2014-10-05 1719 W1AW 750 ORAN WA5LOU 218 IN\n\
QSO: 28000 CW 2014-10-05 1720 W1AW 751 ORAN OK2PAY 173 Czech Republic\n\
QSO: 28000 CW 2014-10-05 1721 W1AW 752 ORAN SP9LJD 336 Poland\n\
QSO: 28000 CW 2014-10-05 1722 W1AW 753 ORAN K2DFC 435 NJ\n\
QSO: 28000 CW 2014-10-05 1722 W1AW 754 ORAN N8NA 138 DE\n\
QSO: 28000 CW 2014-10-05 1723 W1AW 755 ORAN HG8W 119 Hungary\n\
QSO: 28000 CW 2014-10-05 1724 W1AW 756 ORAN 9A2EU 63 Croatia\n\
QSO: 28000 CW 2014-10-05 1724 W1AW 757 ORAN VE3TW 356 ON\n\
QSO: 28000 CW 2014-10-05 1726 W1AW 758 ORAN SM7ZDI 13 Sweden\n\
QSO: 28000 CW 2014-10-05 1728 W1AW 759 ORAN NC6V 395 RIVE\n\
QSO: 28000 CW 2014-10-05 1731 W1AW 760 ORAN W9RE 323 IN\n\
QSO: 28000 CW 2014-10-05 1732 W1AW 761 ORAN N9WKW 190 IN\n\
QSO: 28000 CW 2014-10-05 1732 W1AW 762 ORAN WX4G 532 FL\n\
QSO: 28000 CW 2014-10-05 1733 W1AW 763 ORAN LY5W 93 Lithuania\n\
QSO: 28000 CW 2014-10-05 1734 W1AW 764 ORAN K8MFO 309 OH\n\
QSO: 28000 CW 2014-10-05 1735 W1AW 765 ORAN DL6BBT 15 Federal Republic of Germany\n\
QSO: 28000 CW 2014-10-05 1736 W1AW 766 ORAN W1UE 821 MA\n\
QSO: 28000 CW 2014-10-05 1737 W1AW 767 ORAN K0RC 551 MN\n\
QSO: 28000 CW 2014-10-05 1739 W1AW 768 ORAN OK1CF 14 Czech Republic\n\
QSO: 28000 CW 2014-10-05 1740 W1AW 769 ORAN K7GM 190 NY\n\
QSO: 28000 CW 2014-10-05 1740 W1AW 770 ORAN DL1NKS 128 Federal Republic of Germany\n\
QSO: 28000 CW 2014-10-05 1741 W1AW 771 ORAN K8IW 1 OH\n\
QSO: 28000 CW 2014-10-05 1745 W1AW 772 ORAN W2YC 407 NJ\n\
QSO: 28000 CW 2014-10-05 1745 W1AW 773 ORAN KS4YX 147 SC\n\
QSO: 28000 CW 2014-10-05 1746 W1AW 774 ORAN DF5BM 11 Federal Republic of Germany\n\
QSO: 28000 CW 2014-10-05 1746 W1AW 775 ORAN N4PN 908 GA\n\
QSO: 28000 CW 2014-10-05 1747 W1AW 776 ORAN VE1OP 194 MR\n\
QSO: 28000 CW 2014-10-05 1747 W1AW 777 ORAN OK1VD 70 Czech Republic\n\
QSO: 28000 CW 2014-10-05 1749 W1AW 778 ORAN K0TI 175 MN\n\
QSO: 28000 CW 2014-10-05 1752 W1AW 779 ORAN N3UA 479 VA\n\
QSO: 28000 CW 2014-10-05 1752 W1AW 780 ORAN W3HDH 124 IL\n\
QSO: 28000 CW 2014-10-05 1756 W1AW 781 ORAN W9XT 357 WI\n\
QSO: 28000 CW 2014-10-05 1758 W1AW 782 ORAN K9JWI 238 IN\n\
QSO: 28000 CW 2014-10-05 1758 W1AW 783 ORAN NS9I 323 WI\n\
QSO: 28000 CW 2014-10-05 1758 W1AW 784 ORAN NV9X 191 IL\n\
QSO: 28000 CW 2014-10-05 1800 W1AW 785 ORAN NF4A 596 FL\n\
QSO: 28000 CW 2014-10-05 1803 W1AW 786 ORAN PA5CW 5 Netherlands\n\
QSO: 28000 CW 2014-10-05 1803 W1AW 787 ORAN GM7R 320 Scotland\n\
QSO: 28000 CW 2014-10-05 1804 W1AW 788 ORAN SM5CIL 127 Sweden\n\
QSO: 21000 CW 2014-10-05 1809 W1AW 789 ORAN HA8DM 117 Hungary\n\
QSO: 21000 CW 2014-10-05 1810 W1AW 790 ORAN G4MKR 11 England\n\
QSO: 21000 CW 2014-10-05 1811 W1AW 791 ORAN N8NA 156 DE\n\
QSO: 21000 CW 2014-10-05 1812 W1AW 792 ORAN NK9G 24 WI\n\
QSO: 21000 CW 2014-10-05 1813 W1AW 793 ORAN W7OM 372 WA\n\
QSO: 21000 CW 2014-10-05 1814 W1AW 794 ORAN WO4O 525 FL\n\
QSO: 21000 CW 2014-10-05 1814 W1AW 795 ORAN KF7AXE 31 WA\n\
QSO: 21000 CW 2014-10-05 1815 W1AW 796 ORAN SP6NIC 71 Poland\n\
QSO: 21000 CW 2014-10-05 1815 W1AW 797 ORAN KC0DEB 389 KS\n\
QSO: 21000 CW 2014-10-05 1817 W1AW 798 ORAN OM3RM 29 Slovak Republic\n\
QSO: 21000 CW 2014-10-05 1818 W1AW 799 ORAN WA3SOR 34 PA\n\
QSO: 21000 CW 2014-10-05 1818 W1AW 800 ORAN W1TO 154 MA\n\
QSO: 21000 CW 2014-10-05 1820 W1AW 801 ORAN DL4JLM 111 Federal Republic of Germany\n\
QSO: 21000 CW 2014-10-05 1820 W1AW 802 ORAN K0OU 425 MO\n\
QSO: 21000 CW 2014-10-05 1822 W1AW 803 ORAN W1AW/6 819 SCLA\n\
QSO: 21000 CW 2014-10-05 1823 W1AW 804 ORAN OK2RN 33 Czech Republic\n\
QSO: 21000 CW 2014-10-05 1824 W1AW 805 ORAN W7VXS 2 WA\n\
QSO: 21000 CW 2014-10-05 1824 W1AW 806 ORAN K5CM 91 OK\n\
QSO: 21000 CW 2014-10-05 1825 W1AW 807 ORAN GI4SJQ 10 Northern Ireland\n\
QSO: 21000 CW 2014-10-05 1826 W1AW 808 ORAN ON4CAS 31 Belgium\n\
QSO: 21000 CW 2014-10-05 1828 W1AW 809 ORAN OK1FA 38 Czech Republic\n\
QSO: 21000 CW 2014-10-05 1830 W1AW 810 ORAN G3XVR 55 England\n\
QSO: 21000 CW 2014-10-05 1832 W1AW 811 ORAN W8IDM 73 OH\n\
QSO: 21000 CW 2014-10-05 1833 W1AW 812 ORAN VE1RGB 267 MR\n\
QSO: 21000 CW 2014-10-05 1834 W1AW 813 ORAN G3LET 296 England\n\
QSO: 21000 CW 2014-10-05 1834 W1AW 814 ORAN DK2OY 136 Federal Republic of Germany\n\
QSO: 21000 CW 2014-10-05 1835 W1AW 815 ORAN DK2CF 133 Federal Republic of Germany\n\
QSO: 21000 CW 2014-10-05 1836 W1AW 816 ORAN K2NV 75 NY\n\
QSO: 21000 CW 2014-10-05 1839 W1AW 817 ORAN UR4LCB 45 Ukraine\n\
QSO: 21000 CW 2014-10-05 1842 W1AW 818 ORAN G3TBK 377 England\n\
QSO: 21000 PH 2014-10-05 1851 W1AW 819 ORAN W1SJ 50 VT\n\
QSO: 21000 PH 2014-10-05 1851 W1AW 820 ORAN KF5WFL 161 TX\n\
QSO: 21000 PH 2014-10-05 1852 W1AW 821 ORAN VE3CV 301 ON\n\
QSO: 21000 PH 2014-10-05 1854 W1AW 822 ORAN VE7SAR 57 BC\n\
QSO: 21000 PH 2014-10-05 1856 W1AW 823 ORAN KE5FXE 6 TX\n\
QSO: 21000 PH 2014-10-05 1856 W1AW 824 ORAN NJ2F 193 FL\n\
QSO: 21000 PH 2014-10-05 1857 W1AW 825 ORAN DK2OY 150 Federal Republic of Germany\n\
QSO: 21000 PH 2014-10-05 1858 W1AW 826 ORAN KC0YSY 7 MO\n\
QSO: 21000 PH 2014-10-05 1859 W1AW 827 ORAN WT9B 185 SC\n\
QSO: 21000 PH 2014-10-05 1900 W1AW 828 ORAN KK6L 88 PA\n\
QSO: 21000 PH 2014-10-05 1900 W1AW 829 ORAN K2DSW 438 IA\n\
QSO: 21000 PH 2014-10-05 1901 W1AW 830 ORAN GW0FEU 014 Wales\n\
QSO: 21000 PH 2014-10-05 1902 W1AW 831 ORAN VE3TW 410 ON\n\
QSO: 21000 PH 2014-10-05 1902 W1AW 832 ORAN K9CT 1151 IL\n\
QSO: 21000 PH 2014-10-05 1904 W1AW 833 ORAN W2LE 375 NJ\n\
QSO: 21000 PH 2014-10-05 1906 W1AW 834 ORAN KF7FK 34 WA\n\
QSO: 21000 PH 2014-10-05 1907 W1AW 835 ORAN RJ3FF 1 European Russia\n\
QSO: 21000 PH 2014-10-05 1908 W1AW 836 ORAN VA7GAP 74 BC\n\
QSO: 21000 PH 2014-10-05 1908 W1AW 837 ORAN OK2PAY 220 Czech Republic\n\
QSO: 21000 PH 2014-10-05 1909 W1AW 838 ORAN W4SLT 128 SC\n\
QSO: 21000 PH 2014-10-05 1912 W1AW 839 ORAN W9MXQ 60 WI\n\
QSO: 21000 PH 2014-10-05 1913 W1AW 840 ORAN AD4AA 2 SC\n\
QSO: 21000 PH 2014-10-05 1914 W1AW 841 ORAN DF2RG 69 Federal Republic of Germany\n\
QSO: 21000 PH 2014-10-05 1914 W1AW 842 ORAN KJ4VTH 55 VA\n\
QSO: 21000 PH 2014-10-05 1915 W1AW 843 ORAN NW5Q 163 TX\n\
QSO: 21000 PH 2014-10-05 1915 W1AW 844 ORAN W2DB 17 TX\n\
QSO: 21000 PH 2014-10-05 1916 W1AW 845 ORAN K7JSG 38 WA\n\
QSO: 21000 PH 2014-10-05 1919 W1AW 846 ORAN AJ0CM 188 MN\n\
QSO: 21000 PH 2014-10-05 1920 W1AW 847 ORAN AD5XD 82 TX\n\
QSO: 21000 CW 2014-10-05 1922 W1AW 848 ORAN WA5SOG 206 AR\n\
QSO: 21000 CW 2014-10-05 1923 W1AW 849 ORAN K4HAL 152 AL\n\
QSO: 21000 CW 2014-10-05 1925 W1AW 850 ORAN OK1ES 24 Czech Republic\n\
QSO: 21000 CW 2014-10-05 1926 W1AW 851 ORAN K0TI 205 MN\n\
QSO: 21000 CW 2014-10-05 1926 W1AW 852 ORAN K9OR 34 IL\n\
QSO: 21000 CW 2014-10-05 1927 W1AW 853 ORAN DJ2QV 28 Federal Republic of Germany\n\
QSO: 21000 CW 2014-10-05 1928 W1AW 854 ORAN W7POE 43 WA\n\
QSO: 21000 CW 2014-10-05 1930 W1AW 855 ORAN HA8IB 15 Hungary\n\
QSO: 21000 CW 2014-10-05 1930 W1AW 856 ORAN WA2WDT 189 MD\n\
QSO: 21000 CW 2014-10-05 1932 W1AW 857 ORAN YL2014S 24 Latvia\n\
QSO: 21000 CW 2014-10-05 1934 W1AW 858 ORAN S51MA 48 Slovenia\n\
QSO: 21000 CW 2014-10-05 1935 W1AW 859 ORAN OK1VD 102 Czech Republic\n\
QSO: 21000 CW 2014-10-05 1936 W1AW 860 ORAN DL3XM 18 Federal Republic of Germany\n\
QSO: 21000 CW 2014-10-05 1938 W1AW 861 ORAN VA3EC 53 ON\n\
QSO: 21000 CW 2014-10-05 1939 W1AW 862 ORAN VE7FO 13 BC\n\
QSO: 21000 CW 2014-10-05 1940 W1AW 863 ORAN HB9ARF 44 Switzerland\n\
QSO: 21000 CW 2014-10-05 1941 W1AW 864 ORAN KC4ZA 57 VA\n\
QSO: 21000 CW 2014-10-05 1941 W1AW 865 ORAN KM1Z 74 TN\n\
QSO: 21000 CW 2014-10-05 1943 W1AW 866 ORAN EC7ABV 18 Spain\n\
QSO: 21000 CW 2014-10-05 1945 W1AW 867 ORAN KS4YX 185 SC\n\
QSO: 21000 CW 2014-10-05 1947 W1AW 868 ORAN N5PJ 55 OK\n\
QSO: 21000 CW 2014-10-05 1948 W1AW 869 ORAN VA7ST 161 BC\n\
QSO: 21000 CW 2014-10-05 1949 W1AW 870 ORAN KB1FBQ 5 NH\n\
QSO: 21000 CW 2014-10-05 1951 W1AW 871 ORAN IZ5BRW 42 Italy\n\
QSO: 21000 CW 2014-10-05 1952 W1AW 872 ORAN G3UAS 34 England\n\
QSO: 21000 CW 2014-10-05 1953 W1AW 873 ORAN W1ECH 46 VT\n\
QSO: 21000 CW 2014-10-05 1956 W1AW 874 ORAN KB1EFS 32 MA\n\
QSO: 21000 CW 2014-10-05 1957 W1AW 875 ORAN K3TN 195 MD\n\
QSO: 28000 CW 2014-10-05 2000 W1AW 876 ORAN N4QS 27 KY\n\
QSO: 28000 PH 2014-10-05 2005 W1AW 877 ORAN WO4O 588 FL\n\
QSO: 28000 PH 2014-10-05 2007 W1AW 878 ORAN KX4X 230 AL\n\
QSO: 28000 PH 2014-10-05 2009 W1AW 879 ORAN VE9AA 365 MR\n\
QSO: 28000 PH 2014-10-05 2012 W1AW 880 ORAN KC9DKQ 3 WI\n\
QSO: 14000 CW 2014-10-05 2017 W1AW 881 ORAN NN7A 194 CO\n\
QSO: 14000 CW 2014-10-05 2018 W1AW 882 ORAN N6RC 954 TRIN\n\
QSO: 14000 CW 2014-10-05 2018 W1AW 883 ORAN K0RC 652 MN\n\
QSO: 14000 CW 2014-10-05 2019 W1AW 884 ORAN N8EA 194 MI\n\
QSO: 14000 CW 2014-10-05 2020 W1AW 885 ORAN W1WIU 150 RI\n\
QSO: 14000 CW 2014-10-05 2022 W1AW 886 ORAN K7HBN 152 WA\n\
QSO: 14000 CW 2014-10-05 2024 W1AW 887 ORAN K6MR 1389 SHAS\n\
QSO: 14000 CW 2014-10-05 2026 W1AW 888 ORAN K4AVX 52 KY\n\
QSO: 14000 CW 2014-10-05 2027 W1AW 889 ORAN K0PC 210 MN\n\
QSO: 14000 CW 2014-10-05 2029 W1AW 890 ORAN HG8W 169 Hungary\n\
QSO: 14000 CW 2014-10-05 2034 W1AW 891 ORAN OK1VD 124 Czech Republic\n\
QSO: 14000 CW 2014-10-05 2036 W1AW 892 ORAN VA7ST 171 BC\n\
QSO: 14000 CW 2014-10-05 2037 W1AW 893 ORAN W7GF 145 OR\n\
QSO: 14000 CW 2014-10-05 2038 W1AW 894 ORAN W5TM 258 OK\n\
QSO: 14000 CW 2014-10-05 2039 W1AW 895 ORAN K4HAL 180 AL\n\
QSO: 14000 CW 2014-10-05 2040 W1AW 896 ORAN W7OM 391 WA\n\
QSO: 14000 CW 2014-10-05 2044 W1AW 897 ORAN DL4CF 20 Federal Republic of Germany\n\
QSO: 14000 CW 2014-10-05 2045 W1AW 898 ORAN AB9YC 94 IL\n\
QSO: 14000 CW 2014-10-05 2046 W1AW 899 ORAN W1JQ 135 CT\n\
QSO: 14000 CW 2014-10-05 2047 W1AW 900 ORAN K6M 714 MODO\n\
QSO: 14000 CW 2014-10-05 2047 W1AW 901 ORAN N1KW 153 IL\n\
QSO: 14000 CW 2014-10-05 2048 W1AW 902 ORAN N8NA 175 DE\n\
QSO: 14000 CW 2014-10-05 2049 W1AW 903 ORAN S58N 21 Slovenia\n\
QSO: 14000 CW 2014-10-05 2050 W1AW 904 ORAN K0TC 88 MN\n\
QSO: 14000 CW 2014-10-05 2050 W1AW 905 ORAN N5XE 221 OK\n\
QSO: 14000 CW 2014-10-05 2052 W1AW 906 ORAN WD5K 296 TX\n\
QSO: 14000 CW 2014-10-05 2053 W1AW 907 ORAN K4BAI 834 GA\n\
QSO: 14000 CW 2014-10-05 2053 W1AW 908 ORAN W7GKF 586 WA\n\
QSO: 14000 CW 2014-10-05 2054 W1AW 909 ORAN K9JWI 274 IN\n\
QSO: 14000 CW 2014-10-05 2056 W1AW 910 ORAN KB7V/6 327 ORAN\n\
QSO: 14000 CW 2014-10-05 2057 W1AW 911 ORAN VE7/DJ6OZ 67 BC\n\
QSO: 28000 PH 2014-10-05 2139 W1AW 935 ORAN AI9I 102 IL\n\
QSO: 28000 PH 2014-10-05 2143 W1AW 936 ORAN AG5Z 115 MS\n\
QSO: 28000 PH 2014-10-05 2145 W1AW 937 ORAN W9NJM 100 IL\n\
QSO: 28000 PH 2014-10-05 2145 W1AW 938 ORAN K4EZS 252 TN\n\
QSO: 28000 CW 2014-10-05 2148 W1AW 939 ORAN N8EA 216 MI\n\
QSO: 28000 CW 2014-10-05 2149 W1AW 940 ORAN W4OC 241 SC\n\
QSO: 28000 CW 2014-10-05 2150 W1AW 941 ORAN K9NW 134 OH\n\
QSO: 28000 CW 2014-10-05 2152 W1AW 942 ORAN KD0SPH 1 TX\n\
QSO: 28000 CW 2014-10-05 2153 W1AW 943 ORAN W1AW/6 827 SCLA\n\
QSO: 28000 CW 2014-10-05 2154 W1AW 944 ORAN W2FD 13 PA\n\
QSO: 28000 CW 2014-10-05 2156 W1AW 945 ORAN N4OX 573 FL\n\
QSO: 28000 CW 2014-10-05 2157 W1AW 946 ORAN N1KW 185 IL\n\
QSO: 28000 CW 2014-10-05 2158 W1AW 947 ORAN N9AFU 21 IN\n\
QSO: 28000 CW 2014-10-05 2159 W1AW 948 ORAN WA6KHK 1329 RIVE\n\
QSO: 28000 CW 2014-10-05 2159 W1AW 949 ORAN N2BJ 744 IL\n",
518, 11, 97, { 0, 5, 11, 14, 25, 30, 41, 45, 55, 65, 70 },
{ 3, 9, 12, 23, 28, 39, 43, 53, 64, 68, 96}
}
};
TEST(CabrilloBasics, TableTests)
{
for(const auto &test : tableTests) {
cab::TableText t1(test.text);
cab::TableText t2(test.text.c_str());
std::string copy(test.text);
copy.erase(copy.find_last_not_of(" \t\n\r\f\v"+1));
cab::TableText c1(copy);
cab::TableText c2(copy.c_str());
EXPECT_EQ(test.numRows, t1.getNumRows());
EXPECT_EQ(test.numRows, t2.getNumRows());
EXPECT_EQ(test.numRows, c1.getNumRows());
EXPECT_EQ(test.numRows, c2.getNumRows());
EXPECT_EQ(test.maxWidth, t1.getMaxWidth());
EXPECT_EQ(test.maxWidth, t2.getMaxWidth());
EXPECT_EQ(test.maxWidth, c1.getMaxWidth());
EXPECT_EQ(test.maxWidth, c2.getMaxWidth());
auto result = t1.tabulate(11u);
EXPECT_EQ(result.size(),test.numRows);
EXPECT_EQ(result[0].size(),11u);
const char *wholeText(test.text.c_str());
for(std::size_t i=0u; i < result.size() && i < test.numRows; ++i) {
const char *const nextNewline(std::strchr(wholeText, '\n'));
const char *const nextEnd(nextNewline ? nextNewline : (wholeText+std::strlen(wholeText)));
const std::string line(wholeText, nextEnd);
const std::vector<std::string> ¤t(result.at(i));
for(std::size_t j=0u; j < test.columnStarts.size(); ++j) {
std::size_t start(test.columnStarts.at(j));
std::size_t end(test.columnEnds.at(j)+1);
const std::string expected((start < line.length()) ?
cab::trim(line.substr(start, end-start)) : "");
EXPECT_EQ(expected, current.at(j));
}
wholeText = (nextNewline ? (nextNewline+1) : wholeText);
}
}
}