Alternate e697dbe9c5997e35395fe158628dd8c5209481da
for Visual Studio 2022 and Windows 11.
読み取り中…
検索中…
一致する文字列を見つけられません
ArrayTest.cpp
[詳解]
1
5
6#include "pch.h"
7#include "Array.hpp"
8#include "HeapMemory.h"
9#include "VirtualMemory.h"
10#include "Freight.hpp"
11#include "Binder.hpp"
12#include "TString.h"
13#include "Utility.h"
14
15using namespace Microsoft::VisualStudio::CppUnitTestFramework;
16
18{
19 TEST_CLASS (ArrayTest)
20 {
21 public:
22 TEST_CLASS_INITIALIZE (ClassInitialize)
23 {
24 Logger::WriteMessage ("ArrayTest class initialize.\n");
25 }
26
27 TEST_CLASS_CLEANUP (ClassCleanup)
28 {
29 Logger::WriteMessage ("ArrayTest class cleanup.\n");
30 }
31
32 TEST_METHOD_INITIALIZE (MethodInitialize)
33 {
34 Logger::WriteMessage ("ArrayTest method initialize.\n");
35 }
36
37 TEST_METHOD_CLEANUP (MethodCleanup)
38 {
39 Logger::WriteMessage ("ArrayTest method cleanup.\n");
40 }
41
42 typedef struct _Freight1
43 {
44 int _index = 0;
45 char _message[MAX_PATH]{ 0 };
46 char _guid[40]{ 0 };
47 bool isRemain = 0;
48 } Freight1;
49
50 typedef std::function<void (Freight1&, int, bool)> MakeFreight1;
51 MakeFreight1 makeFreight1 = [](Freight1& freight, int i, bool isRemain)->void
52 {
53 alt::TString buffer;
54 freight._index = i;
56 buffer.ToSJIS (freight._message, MAX_PATH);
57 buffer = alt::Utility::MakeGUID ();
58 buffer.ToSJIS (freight._guid, 40);
59 freight.isRemain = isRemain;
60 };
61
62 typedef std::function<void (Freight1&)> ShowFreight1;
63 ShowFreight1 showFreight1 = [](Freight1& freight)
64 {
65 alt::TString output;
66 output.Format (_T ("%2d:%S %S isRemain=%d\n"),
67 freight._index, freight._message, freight._guid, freight.isRemain);
68 Logger::WriteMessage (output.Ctr ());
69 };
70
71 typedef struct _Freight2
72 {
73 int _index = 0;
74 char _message[MAX_PATH]{ 0 };
75 alt::TString _guid;
76 bool isRemain = 0;
77 } Freight2;
78
79 typedef std::function<void (Freight2&, int, bool)> MakeFreight2;
80 MakeFreight2 makeFreight2 = [](Freight2& freight, int i, bool isRemain)->void
81 {
82 freight._index = i;
83 alt::TString message =
85 message.ToSJIS (freight._message, MAX_PATH);
86 freight._guid = alt::Utility::MakeGUID ();
87 freight.isRemain = isRemain;
88 };
89
90 typedef std::function<void (Freight2&)> ShowFreight2;
91 ShowFreight2 showFreight2 = [](Freight2& freight)
92 {
93 alt::TString output;
94 output.Format (_T ("%2d:%S %s isRemain=%d\n"),
95 freight._index, freight._message, freight._guid.Ctr (), freight.isRemain);
96 Logger::WriteMessage (output.Ctr ());
97 };
98
99 typedef alt::skeleton::Freight<TCHAR> Freight3;
100
101 typedef std::function<void (Freight3&)> MakeFreight3;
102 MakeFreight3 makeFreight3 = [](Freight3& freight)->void
103 {
104 alt::TString message =
106 freight.SetData (message.Ptr (), message.Byte ());
107 };
108
109 typedef std::function<void (Freight3&)> ShowFreight3;
110 ShowFreight3 showFreight3 = [](Freight3& freight)
111 {
112 alt::TString output;
113 output.Format (_T ("%s[%d]\n"), freight.GetData (), freight.GetSize ());
114 Logger::WriteMessage (output.Ctr ());
115 };
116
117 class Freight4 : public Freight3
118 {
119 public:
120 Freight4 ()
121 :Freight3 ()
122 {
123 _index = -1;
124 _isRemain = false;
125 };
126
127 Freight4 (const Freight4& base)
128 :Freight3 ((Freight3)base)
129 {
130 _index = base._index;
131 _isRemain = base._isRemain;
132 _guid = base._guid;
133 };
134
135 ~Freight4 ()
136 {
137 _index = -1;
138 _isRemain = false;
139 };
140
141 void GetData (
142 INT& index, LPTSTR& message, size_t& size, bool& isRemain, alt::TString& guid)
143 {
144 message = Freight3::GetData ();
145 size = Freight3::GetSize ();
146 index = _index;
147 guid = _guid;
148 isRemain = _isRemain;
149 };
150
151 void SetData (
152 const INT index, LPTSTR message, const int size, const bool isRemain, const alt::TString& guid)
153 {
154 Freight3::SetData (message, size);
155 _index = index;
156 _guid = guid;
157 _isRemain = isRemain;
158 };
159
160 void operator = (const Freight4& base)
161 {
162 Freight3::operator=((Freight3)base);
163 _index = base._index;
164 _guid = base._guid;
165 _isRemain = base._isRemain;
166 }
167
168 private:
169 int _index;
170 alt::TString _guid;
171 bool _isRemain;
172 };
173
174 typedef std::function<void (Freight4&, int, bool)> MakeFreight4;
175 MakeFreight4 makeFreight4 = [](Freight4& freight, int index, bool isRemain)->void
176 {
177 alt::TString message =
180 freight.SetData (index, message.Ptr (), message.Byte (), isRemain, guid);
181 };
182
183 typedef std::function<void (Freight4&)> ShowFreight4;
184 ShowFreight4 showFreight4 = [](Freight4& freight)
185 {
186 int index;
187 size_t size;
188 LPTSTR lptszMessage = nullptr;
189 bool isRemain;
190 alt::TString guid;
191 freight.GetData (index, lptszMessage, size, isRemain, guid);
192
193 alt::TString output;
194 output.Format (_T ("%2d:%s %s isRemain=%d\n"),
195 index, lptszMessage, guid.Ctr (), isRemain);
196 Logger::WriteMessage (output.Ctr ());
197 };
198
199 TEST_METHOD (VectorFreightTest1)
200 {
201 alt::TString message;
202
203 message.Format (_T ("sizeof(Freight1)=%d\n"), sizeof (Freight1));
204 Logger::WriteMessage (message.Ctr ());
205 message.Format (_T ("sizeof(Freight2)=%d\n"), sizeof (Freight2));
206 Logger::WriteMessage (message.Ctr ());
207 message.Format (_T ("sizeof(Freight3)=%d\n"), sizeof (Freight3));
208 Logger::WriteMessage (message.Ctr ());
209 message.Format (_T ("sizeof(Freight4)=%d\n"), sizeof (Freight4));
210 Logger::WriteMessage (message.Ctr ());
211
212 {
213 std::vector<Freight1> vector;
214 Freight1 freight;
215 makeFreight1 (freight, 128, false);
216 vector.push_back (freight);
217 auto& val1 = vector.front ();
218 showFreight1 (val1);
219 Freight1 val2 = vector.front ();
220 showFreight1 (val2);
221 }
222
223 {
224 std::vector<Freight2> vector;
225 Freight2 freight;
226 makeFreight2 (freight, 128, false);
227 vector.push_back (freight);
228 auto& val1 = vector.front ();
229 showFreight2 (val1);
230 Freight2 val2 = vector.front ();
231 showFreight2 (val2);
232 }
233
234 {
235 std::vector<Freight3> vector;
236 Freight3 freight;
237 makeFreight3 (freight);
238 vector.push_back (freight);
239 auto& val1 = vector.front ();
240 showFreight3 (val1);
241 Freight3 val2 = vector.front ();
242 showFreight3 (val2);
243 }
244
245 {
246 std::vector<Freight4> vector;
247 Freight4 freight;
248 makeFreight4 (freight, 128, false);
249 vector.push_back (freight);
250 auto& val1 = vector.front ();
251 showFreight4 (val1);
252 Freight4 val2 = vector.front ();
253 showFreight4 (val2);
254 }
255 }
256
257 TEST_METHOD (ArrayTest1BA)
258 {
259 typedef alt::skeleton::Array<Freight1> Array;
260 Array array1;
261
262 for (int i = 0; i < 10; i++)
263 {
264 Freight1 freight;
265 makeFreight1 (freight, i, true);
266 array1.Add (freight);
267 }
268
269 for (int i = 0; i < 5; i++)
270 {
271 array1.Remove (5);
272 }
273
274 Array array2;
275
276 {
277 for (int i = 0; i < 10; i++)
278 {
279 Freight1 freight;
280 makeFreight1 (freight, i, true);
281 array2.Add (freight);
282 }
283
284 for (int i = 0; i < 5; i++)
285 {
286 array2.Remove (0);
287 }
288
289 {
290 Array array3 = array1;
291 array3 += array2;
292
293 Logger::WriteMessage ("----------------------------------------\n");
294 Assert::AreEqual<SIZE_T> (10, array3.Size ());
295 for (Freight1 freight : array3)
296 {
297 showFreight1 (freight);
298 }
299
300 array3.Clear ();
301 }
302
303 Logger::WriteMessage ("----------------------------------------\n");
304 Assert::AreEqual<SIZE_T> (5, array2.Size ());
305 for (Freight1 freight : array2)
306 {
307 showFreight1 (freight);
308 }
309
310 array2.Clear ();
311 }
312
313 Logger::WriteMessage ("----------------------------------------\n");
314 Assert::AreEqual<SIZE_T> (5, array1.Size ());
315 for (Freight1& freight : array1)
316 {
317 showFreight1 (freight);
318 }
319
320 array1.Clear ();
321 }
322
323 TEST_METHOD (ArrayTest2BA)
324 {
325 typedef alt::skeleton::Array<Freight2> Array;
326 Array array1;
327
328 for (int i = 0; i < 10; i++)
329 {
330 Freight2 freight;
331 makeFreight2 (freight, i, true);
332 array1.Add (freight);
333 }
334
335 for (int i = 0; i < 5; i++)
336 {
337 array1.Remove (5);
338 }
339
340 Array array2;
341
342 {
343 for (int i = 0; i < 10; i++)
344 {
345 Freight2 freight;
346 makeFreight2 (freight, i, true);
347 array2.Add (freight);
348 }
349
350 for (int i = 0; i < 5; i++)
351 {
352 array2.Remove (0);
353 }
354
355 {
356 Array array3 = array1;
357 array3 += array2;
358
359 Logger::WriteMessage ("----------------------------------------\n");
360 Assert::AreEqual<SIZE_T> (10, array3.Size ());
361 for (Freight2 freight : array3)
362 {
363 showFreight2 (freight);
364 }
365
366 array3.Clear ();
367 }
368
369 Logger::WriteMessage ("----------------------------------------\n");
370 Assert::AreEqual<SIZE_T> (5, array2.Size ());
371 for (Freight2 freight : array2)
372 {
373 showFreight2 (freight);
374 }
375
376 array2.Clear ();
377 }
378
379 Logger::WriteMessage ("----------------------------------------\n");
380 Assert::AreEqual<SIZE_T> (5, array1.Size ());
381 for (Freight2& freight : array1)
382 {
383 showFreight2 (freight);
384 }
385
386 array1.Clear ();
387 }
388
389 TEST_METHOD (ArrayTest3BA)
390 {
391 typedef alt::skeleton::Array<Freight3> Array;
392 Array array1;
393
394 for (int i = 0; i < 10; i++)
395 {
396 Freight3 freight;
397 makeFreight3 (freight);
398 array1.Add (freight);
399 }
400
401 for (int i = 0; i < 5; i++)
402 {
403 array1.Remove (5);
404 }
405
406 Array array2;
407
408 {
409 for (int i = 0; i < 10; i++)
410 {
411 Freight3 freight;
412 makeFreight3 (freight);
413 array2.Add (freight);
414 }
415
416 for (int i = 0; i < 5; i++)
417 {
418 array2.Remove (0);
419 }
420
421 {
422 Array array3 = array1;
423 array3 += array2;
424
425 Logger::WriteMessage ("----------------------------------------\n");
426 Assert::AreEqual<SIZE_T> (10, array3.Size ());
427 for (Freight3 freight : array3)
428 {
429 showFreight3 (freight);
430 }
431
432 array3.Clear ();
433 }
434
435 Logger::WriteMessage ("----------------------------------------\n");
436 Assert::AreEqual<SIZE_T> (5, array2.Size ());
437 for (Freight3 freight : array2)
438 {
439 showFreight3 (freight);
440 }
441
442 array2.Clear ();
443 }
444
445 Logger::WriteMessage ("----------------------------------------\n");
446 Assert::AreEqual<SIZE_T> (5, array1.Size ());
447 for (Freight3& freight : array1)
448 {
449 showFreight3 (freight);
450 }
451
452 array1.Clear ();
453 }
454
455 TEST_METHOD (ArrayTest4BA)
456 {
457 typedef alt::skeleton::Array<Freight4> Array;
458 Array array1;
459
460 for (int i = 0; i < 10; i++)
461 {
462 Freight4 freight;
463 makeFreight4 (freight, i, true);
464 array1.Add (freight);
465 }
466
467 for (int i = 0; i < 5; i++)
468 {
469 array1.Remove (5);
470 }
471
472 Array array2;
473
474 {
475 for (int i = 0; i < 10; i++)
476 {
477 Freight4 freight;
478 makeFreight4 (freight, i, true);
479 array2.Add (freight);
480 }
481
482 for (int i = 0; i < 5; i++)
483 {
484 array2.Remove (0);
485 }
486
487 {
488 Array array3 = array1;
489 array3 += array2;
490
491 Logger::WriteMessage ("----------------------------------------\n");
492 Assert::AreEqual<SIZE_T> (10, array3.Size ());
493 for (Freight4 freight : array3)
494 {
495 showFreight4 (freight);
496 }
497 }
498
499 Logger::WriteMessage ("----------------------------------------\n");
500 Assert::AreEqual<SIZE_T> (5, array2.Size ());
501 for (Freight4 freight : array2)
502 {
503 showFreight4 (freight);
504 }
505
506 array2.Clear ();
507 }
508
509 Logger::WriteMessage ("----------------------------------------\n");
510 Assert::AreEqual<SIZE_T> (5, array1.Size ());
511 for (Freight4& freight : array1)
512 {
513 showFreight4 (freight);
514 }
515
516 array1.Clear ();
517 }
518
519 TEST_METHOD (ArrayTest1HO)
520 {
522 Assert::IsTrue (memory.New ());
523 Assert::IsTrue (memory->Open ());
524
525 typedef alt::skeleton::Array<Freight1> Array;
526 Array array1 (memory.Get ());
527
528 for (int i = 0; i < 10; i++)
529 {
530 Freight1 freight;
531 makeFreight1 (freight, i, true);
532 array1.Add (freight);
533 }
534
535 for (int i = 0; i < 5; i++)
536 {
537 array1.Remove (5);
538 }
539
540 Array array2;
541
542 {
543 for (int i = 0; i < 10; i++)
544 {
545 Freight1 freight;
546 makeFreight1 (freight, i, true);
547 array2.Add (freight);
548 }
549
550 for (int i = 0; i < 5; i++)
551 {
552 array2.Remove (0);
553 }
554
555 {
556 Array array3 = array1;
557 array3 += array2;
558
559 Logger::WriteMessage ("----------------------------------------\n");
560 Assert::AreEqual<SIZE_T> (10, array3.Size ());
561 for (Freight1 freight : array3)
562 {
563 showFreight1 (freight);
564 }
565
566 array3.Clear ();
567 }
568
569 Logger::WriteMessage ("----------------------------------------\n");
570 Assert::AreEqual<SIZE_T> (5, array2.Size ());
571 for (Freight1 freight : array2)
572 {
573 showFreight1 (freight);
574 }
575
576 array2.Clear ();
577 }
578
579 Logger::WriteMessage ("----------------------------------------\n");
580 Assert::AreEqual<SIZE_T> (5, array1.Size ());
581 for (Freight1& freight : array1)
582 {
583 showFreight1 (freight);
584 }
585
586 array1.Clear ();
587 }
588
589 TEST_METHOD (ArrayTest2HO)
590 {
592 Assert::IsTrue (memory.New ());
593 Assert::IsTrue (memory->Open ());
594
595 typedef alt::skeleton::Array<Freight2> Array;
596 Array array1 (memory.Get ());
597
598 for (int i = 0; i < 10; i++)
599 {
600 Freight2 freight;
601 makeFreight2 (freight, i, true);
602 array1.Add (freight);
603 }
604
605 for (int i = 0; i < 5; i++)
606 {
607 array1.Remove (5);
608 }
609
610 Array array2;
611
612 {
613 for (int i = 0; i < 10; i++)
614 {
615 Freight2 freight;
616 makeFreight2 (freight, i, true);
617 array2.Add (freight);
618 }
619
620 for (int i = 0; i < 5; i++)
621 {
622 array2.Remove (0);
623 }
624
625 {
626 Array array3 = array1;
627 array3 += array2;
628
629 Logger::WriteMessage ("----------------------------------------\n");
630 Assert::AreEqual<SIZE_T> (10, array3.Size ());
631 for (Freight2 freight : array3)
632 {
633 showFreight2 (freight);
634 }
635
636 array3.Clear ();
637 }
638
639 Logger::WriteMessage ("----------------------------------------\n");
640 Assert::AreEqual<SIZE_T> (5, array2.Size ());
641 for (Freight2 freight : array2)
642 {
643 showFreight2 (freight);
644 }
645
646 array2.Clear ();
647 }
648
649 Logger::WriteMessage ("----------------------------------------\n");
650 Assert::AreEqual<SIZE_T> (5, array1.Size ());
651 for (Freight2& freight : array1)
652 {
653 showFreight2 (freight);
654 }
655
656 array1.Clear ();
657 }
658
659 TEST_METHOD (ArrayTest3HO)
660 {
662 Assert::IsTrue (memory.New ());
663 Assert::IsTrue (memory->Open ());
664
665 typedef alt::skeleton::Array<Freight3> Array;
666 Array array1 (memory.Get ());
667
668 for (int i = 0; i < 10; i++)
669 {
670 Freight3 freight;
671 makeFreight3 (freight);
672 array1.Add (freight);
673 }
674
675 for (int i = 0; i < 5; i++)
676 {
677 array1.Remove (5);
678 }
679
680 Array array2;
681
682 {
683 for (int i = 0; i < 10; i++)
684 {
685 Freight3 freight;
686 makeFreight3 (freight);
687 array2.Add (freight);
688 }
689
690 for (int i = 0; i < 5; i++)
691 {
692 array2.Remove (0);
693 }
694
695 {
696 Array array3 = array1;
697 array3 += array2;
698
699 Logger::WriteMessage ("----------------------------------------\n");
700 Assert::AreEqual<SIZE_T> (10, array3.Size ());
701 for (Freight3 freight : array3)
702 {
703 showFreight3 (freight);
704 }
705
706 array3.Clear ();
707 }
708
709 Logger::WriteMessage ("----------------------------------------\n");
710 Assert::AreEqual<SIZE_T> (5, array2.Size ());
711 for (Freight3 freight : array2)
712 {
713 showFreight3 (freight);
714 }
715
716 array2.Clear ();
717 }
718
719 Logger::WriteMessage ("----------------------------------------\n");
720 Assert::AreEqual<SIZE_T> (5, array1.Size ());
721 for (Freight3& freight : array1)
722 {
723 showFreight3 (freight);
724 }
725
726 array1.Clear ();
727 }
728
729 TEST_METHOD (ArrayTest4HO)
730 {
732 Assert::IsTrue (memory.New ());
733 Assert::IsTrue (memory->Open ());
734
735 typedef alt::skeleton::Array<Freight4> Array;
736 Array array1 (memory.Get ());
737
738 for (int i = 0; i < 10; i++)
739 {
740 Freight4 freight;
741 makeFreight4 (freight, i, true);
742 array1.Add (freight);
743 }
744
745 for (int i = 0; i < 5; i++)
746 {
747 array1.Remove (5);
748 }
749
750 Array array2;
751
752 {
753 for (int i = 0; i < 10; i++)
754 {
755 Freight4 freight;
756 makeFreight4 (freight, i, true);
757 array2.Add (freight);
758 }
759
760 for (int i = 0; i < 5; i++)
761 {
762 array2.Remove (0);
763 }
764
765 {
766 Array array3 = array1;
767 array3 += array2;
768
769 Logger::WriteMessage ("----------------------------------------\n");
770 Assert::AreEqual<SIZE_T> (10, array3.Size ());
771 for (Freight4 freight : array3)
772 {
773 showFreight4 (freight);
774 }
775
776 array3.Clear ();
777 }
778
779 Logger::WriteMessage ("----------------------------------------\n");
780 Assert::AreEqual<SIZE_T> (5, array2.Size ());
781 for (Freight4 freight : array2)
782 {
783 showFreight4 (freight);
784 }
785
786 array2.Clear ();
787 }
788
789 Logger::WriteMessage ("----------------------------------------\n");
790 Assert::AreEqual<SIZE_T> (5, array1.Size ());
791 for (Freight4& freight : array1)
792 {
793 showFreight4 (freight);
794 }
795
796 array1.Clear ();
797 }
798
799 TEST_METHOD (ArrayTest1HC)
800 {
802 Assert::IsTrue (memory.New ());
803 Assert::IsTrue (memory->Create ());
804
805 typedef alt::skeleton::Array<Freight1> Array;
806 Array array1 (memory.Get ());
807
808 for (int i = 0; i < 10; i++)
809 {
810 Freight1 freight;
811 makeFreight1 (freight, i, true);
812 array1.Add (freight);
813 }
814
815 for (int i = 0; i < 5; i++)
816 {
817 array1.Remove (5);
818 }
819
820 Array array2;
821
822 {
823 for (int i = 0; i < 10; i++)
824 {
825 Freight1 freight;
826 makeFreight1 (freight, i, true);
827 array2.Add (freight);
828 }
829
830 for (int i = 0; i < 5; i++)
831 {
832 array2.Remove (0);
833 }
834
835 {
836 Array array3 = array1;
837 array3 += array2;
838
839 Logger::WriteMessage ("----------------------------------------\n");
840 Assert::AreEqual<SIZE_T> (10, array3.Size ());
841 for (Freight1 freight : array3)
842 {
843 showFreight1 (freight);
844 }
845
846 array3.Clear ();
847 }
848
849 Logger::WriteMessage ("----------------------------------------\n");
850 Assert::AreEqual<SIZE_T> (5, array2.Size ());
851 for (Freight1 freight : array2)
852 {
853 showFreight1 (freight);
854 }
855
856 array2.Clear ();
857 }
858
859 Logger::WriteMessage ("----------------------------------------\n");
860 Assert::AreEqual<SIZE_T> (5, array1.Size ());
861 for (Freight1& freight : array1)
862 {
863 showFreight1 (freight);
864 }
865
866 array1.Clear ();
867 }
868
869 TEST_METHOD (ArrayTest2HC)
870 {
872 Assert::IsTrue (memory.New ());
873 Assert::IsTrue (memory->Create ());
874
875 typedef alt::skeleton::Array<Freight2> Array;
876 Array array1 (memory.Get ());
877
878 for (int i = 0; i < 10; i++)
879 {
880 Freight2 freight;
881 makeFreight2 (freight, i, true);
882 array1.Add (freight);
883 }
884
885 for (int i = 0; i < 5; i++)
886 {
887 array1.Remove (5);
888 }
889
890 Array array2;
891
892 {
893 for (int i = 0; i < 10; i++)
894 {
895 Freight2 freight;
896 makeFreight2 (freight, i, true);
897 array2.Add (freight);
898 }
899
900 for (int i = 0; i < 5; i++)
901 {
902 array2.Remove (0);
903 }
904
905 {
906 Array array3 = array1;
907 array3 += array2;
908
909 Logger::WriteMessage ("----------------------------------------\n");
910 Assert::AreEqual<SIZE_T> (10, array3.Size ());
911 for (Freight2 freight : array3)
912 {
913 showFreight2 (freight);
914 }
915
916 array3.Clear ();
917 }
918
919 Logger::WriteMessage ("----------------------------------------\n");
920 Assert::AreEqual<SIZE_T> (5, array2.Size ());
921 for (Freight2 freight : array2)
922 {
923 showFreight2 (freight);
924 }
925
926 array2.Clear ();
927 }
928
929 Logger::WriteMessage ("----------------------------------------\n");
930 Assert::AreEqual<SIZE_T> (5, array1.Size ());
931 for (Freight2& freight : array1)
932 {
933 showFreight2 (freight);
934 }
935
936 array1.Clear ();
937 }
938
939 TEST_METHOD (ArrayTest3HC)
940 {
942 Assert::IsTrue (memory.New ());
943 Assert::IsTrue (memory->Create ());
944
945 typedef alt::skeleton::Array<Freight3> Array;
946 Array array1 (memory.Get ());
947
948 for (int i = 0; i < 10; i++)
949 {
950 Freight3 freight;
951 makeFreight3 (freight);
952 array1.Add (freight);
953 }
954
955 for (int i = 0; i < 5; i++)
956 {
957 array1.Remove (5);
958 }
959
960 Array array2;
961
962 {
963 for (int i = 0; i < 10; i++)
964 {
965 Freight3 freight;
966 makeFreight3 (freight);
967 array2.Add (freight);
968 }
969
970 for (int i = 0; i < 5; i++)
971 {
972 array2.Remove (0);
973 }
974
975 {
976 Array array3 = array1;
977 array3 += array2;
978
979 Logger::WriteMessage ("----------------------------------------\n");
980 Assert::AreEqual<SIZE_T> (10, array3.Size ());
981 for (Freight3 freight : array3)
982 {
983 showFreight3 (freight);
984 }
985
986 array3.Clear ();
987 }
988
989 Logger::WriteMessage ("----------------------------------------\n");
990 Assert::AreEqual<SIZE_T> (5, array2.Size ());
991 for (Freight3 freight : array2)
992 {
993 showFreight3 (freight);
994 }
995
996 array2.Clear ();
997 }
998
999 Logger::WriteMessage ("----------------------------------------\n");
1000 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1001 for (Freight3& freight : array1)
1002 {
1003 showFreight3 (freight);
1004 }
1005
1006 array1.Clear ();
1007 }
1008
1009 TEST_METHOD (ArrayTest4HC)
1010 {
1012 Assert::IsTrue (memory.New ());
1013 Assert::IsTrue (memory->Create ());
1014
1015 typedef alt::skeleton::Array<Freight4> Array;
1016 Array array1 (memory.Get ());
1017
1018 for (int i = 0; i < 10; i++)
1019 {
1020 Freight4 freight;
1021 makeFreight4 (freight, i, true);
1022 array1.Add (freight);
1023 }
1024
1025 for (int i = 0; i < 5; i++)
1026 {
1027 array1.Remove (5);
1028 }
1029
1030 Array array2;
1031
1032 {
1033 for (int i = 0; i < 10; i++)
1034 {
1035 Freight4 freight;
1036 makeFreight4 (freight, i, true);
1037 array2.Add (freight);
1038 }
1039
1040 for (int i = 0; i < 5; i++)
1041 {
1042 array2.Remove (0);
1043 }
1044
1045 {
1046 Array array3 = array1;
1047 array3 += array2;
1048
1049 Logger::WriteMessage ("----------------------------------------\n");
1050 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1051 for (Freight4 freight : array3)
1052 {
1053 showFreight4 (freight);
1054 }
1055
1056 array3.Clear ();
1057 }
1058
1059 Logger::WriteMessage ("----------------------------------------\n");
1060 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1061 for (Freight4 freight : array2)
1062 {
1063 showFreight4 (freight);
1064 }
1065
1066 array2.Clear ();
1067 }
1068
1069 Logger::WriteMessage ("----------------------------------------\n");
1070 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1071 for (Freight4& freight : array1)
1072 {
1073 showFreight4 (freight);
1074 }
1075
1076 array1.Clear ();
1077 }
1078
1079 TEST_METHOD (ArrayTest1V1)
1080 {
1082 Assert::IsTrue (memory.New ());
1083
1084 typedef alt::skeleton::Array<Freight1> Array;
1085 Array array1 (memory.Get ());
1086
1087 for (int i = 0; i < 10; i++)
1088 {
1089 Freight1 freight;
1090 makeFreight1 (freight, i, true);
1091 array1.Add (freight);
1092 }
1093
1094 for (int i = 0; i < 5; i++)
1095 {
1096 array1.Remove (5);
1097 }
1098
1099 Array array2;
1100
1101 {
1102 for (int i = 0; i < 10; i++)
1103 {
1104 Freight1 freight;
1105 makeFreight1 (freight, i, true);
1106 array2.Add (freight);
1107 }
1108
1109 for (int i = 0; i < 5; i++)
1110 {
1111 array2.Remove (0);
1112 }
1113
1114 {
1115 Array array3 = array1;
1116 array3 += array2;
1117
1118 Logger::WriteMessage ("----------------------------------------\n");
1119 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1120 for (Freight1 freight : array3)
1121 {
1122 showFreight1 (freight);
1123 }
1124
1125 array3.Clear ();
1126 }
1127
1128 Logger::WriteMessage ("----------------------------------------\n");
1129 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1130 for (Freight1 freight : array2)
1131 {
1132 showFreight1 (freight);
1133 }
1134
1135 array2.Clear ();
1136 }
1137
1138 Logger::WriteMessage ("----------------------------------------\n");
1139 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1140 for (Freight1& freight : array1)
1141 {
1142 showFreight1 (freight);
1143 }
1144
1145 array1.Clear ();
1146 }
1147
1148 TEST_METHOD (ArrayTest2V1)
1149 {
1151 Assert::IsTrue (memory.New ());
1152
1153 typedef alt::skeleton::Array<Freight2> Array;
1154 Array array1 (memory.Get ());
1155
1156 for (int i = 0; i < 10; i++)
1157 {
1158 Freight2 freight;
1159 makeFreight2 (freight, i, true);
1160 array1.Add (freight);
1161 }
1162
1163 for (int i = 0; i < 5; i++)
1164 {
1165 array1.Remove (5);
1166 }
1167
1168 Array array2;
1169
1170 {
1171 for (int i = 0; i < 10; i++)
1172 {
1173 Freight2 freight;
1174 makeFreight2 (freight, i, true);
1175 array2.Add (freight);
1176 }
1177
1178 for (int i = 0; i < 5; i++)
1179 {
1180 array2.Remove (0);
1181 }
1182
1183 {
1184 Array array3 = array1;
1185 array3 += array2;
1186
1187 Logger::WriteMessage ("----------------------------------------\n");
1188 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1189 for (Freight2 freight : array3)
1190 {
1191 showFreight2 (freight);
1192 }
1193
1194 array3.Clear ();
1195 }
1196
1197 Logger::WriteMessage ("----------------------------------------\n");
1198 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1199 for (Freight2 freight : array2)
1200 {
1201 showFreight2 (freight);
1202 }
1203
1204 array2.Clear ();
1205 }
1206
1207 Logger::WriteMessage ("----------------------------------------\n");
1208 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1209 for (Freight2& freight : array1)
1210 {
1211 showFreight2 (freight);
1212 }
1213
1214 array1.Clear ();
1215 }
1216
1217 TEST_METHOD (ArrayTest3V1)
1218 {
1220 Assert::IsTrue (memory.New ());
1221
1222 typedef alt::skeleton::Array<Freight3> Array;
1223 Array array1 (memory.Get ());
1224
1225 for (int i = 0; i < 10; i++)
1226 {
1227 Freight3 freight;
1228 makeFreight3 (freight);
1229 array1.Add (freight);
1230 }
1231
1232 for (int i = 0; i < 5; i++)
1233 {
1234 array1.Remove (5);
1235 }
1236
1237 Array array2;
1238
1239 {
1240 for (int i = 0; i < 10; i++)
1241 {
1242 Freight3 freight;
1243 makeFreight3 (freight);
1244 array2.Add (freight);
1245 }
1246
1247 for (int i = 0; i < 5; i++)
1248 {
1249 array2.Remove (0);
1250 }
1251
1252 {
1253 Array array3 = array1;
1254 array3 += array2;
1255
1256 Logger::WriteMessage ("----------------------------------------\n");
1257 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1258 for (Freight3 freight : array3)
1259 {
1260 showFreight3 (freight);
1261 }
1262
1263 array3.Clear ();
1264 }
1265
1266 Logger::WriteMessage ("----------------------------------------\n");
1267 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1268 for (Freight3 freight : array2)
1269 {
1270 showFreight3 (freight);
1271 }
1272
1273 array2.Clear ();
1274 }
1275
1276 Logger::WriteMessage ("----------------------------------------\n");
1277 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1278 for (Freight3& freight : array1)
1279 {
1280 showFreight3 (freight);
1281 }
1282
1283 array1.Clear ();
1284 }
1285
1286 TEST_METHOD (ArrayTest4V1)
1287 {
1289 Assert::IsTrue (memory.New ());
1290
1291 typedef alt::skeleton::Array<Freight4> Array;
1292 Array array1 (memory.Get ());
1293
1294 for (int i = 0; i < 10; i++)
1295 {
1296 Freight4 freight;
1297 makeFreight4 (freight, i, true);
1298 array1.Add (freight);
1299 }
1300
1301 for (int i = 0; i < 5; i++)
1302 {
1303 array1.Remove (5);
1304 }
1305
1306 Array array2;
1307
1308 {
1309 for (int i = 0; i < 10; i++)
1310 {
1311 Freight4 freight;
1312 makeFreight4 (freight, i, true);
1313 array2.Add (freight);
1314 }
1315
1316 for (int i = 0; i < 5; i++)
1317 {
1318 array2.Remove (0);
1319 }
1320
1321 {
1322 Array array3 = array1;
1323 array3 += array2;
1324
1325 Logger::WriteMessage ("----------------------------------------\n");
1326 Assert::AreEqual<SIZE_T> (10, array3.Size ());
1327 for (Freight4 freight : array3)
1328 {
1329 showFreight4 (freight);
1330 }
1331
1332 array3.Clear ();
1333 }
1334
1335 Logger::WriteMessage ("----------------------------------------\n");
1336 Assert::AreEqual<SIZE_T> (5, array2.Size ());
1337 for (Freight4 freight : array2)
1338 {
1339 showFreight4 (freight);
1340 }
1341
1342 array2.Clear ();
1343 }
1344
1345 Logger::WriteMessage ("----------------------------------------\n");
1346 Assert::AreEqual<SIZE_T> (5, array1.Size ());
1347 for (Freight4& freight : array1)
1348 {
1349 showFreight4 (freight);
1350 }
1351
1352 array1.Clear ();
1353 }
1354 };
1355}
可変配列に関するクラス
newオブジェクトを管理するコンテナクラス
プリミティブな変数を管理するコンテナクラス
ヒープメモリに関するAPIを集約したクラス
文字列に関するWindowsAPIを集約したクラス
#define size
汎用的に使えるユーティリティクラス
仮想メモリに関するWindowsAPIを集約したクラス
プリコンパイル済みヘッダー ファイルです。
文字列に関するWindowsAPIを集約したクラス
Definition: TString.h:17
TString &APIENTRY Format(LPCTSTR format,...)
フォーマットに従ってパラメータを文字列化します。
Definition: TString.cpp:333
INT APIENTRY Byte() const
内部で確保している文字列(バイト数)を取得します。
Definition: TString.cpp:44
LPCTSTR APIENTRY Ctr() const
内部で確保している文字列ポインタを取得します。
Definition: TString.h:46
int APIENTRY ToSJIS(LPSTR lpszSJIS, DWORD dwLen)
SJIS文字列を出力します。
Definition: TString.cpp:364
LPTSTR APIENTRY Ptr() const
内部で確保している文字列ポインタを取得します。
Definition: TString.h:42
static const TString APIENTRY MakeGUID()
GUIDの作成
Definition: Utility.cpp:22
static SYSTEMTIME APIENTRY GetLocalTime()
ローカル時間の取得
Definition: Utility.cpp:46
static TString APIENTRY GetFormatTime(const SYSTEMTIME &systemTime)
SYSTEMTIME構造体の値を文字列化
Definition: Utility.cpp:55
サイズ可変の配列を具現したクラス
Definition: Array.hpp:20
newオブジェクトを管理するコンテナクラス
Definition: Binder.hpp:18
T *APIENTRY Get() const
管理オブジェクトの取得
Definition: Binder.hpp:59
bool APIENTRY New(Args... args)
管理オブジェクトの作成
Definition: Binder.hpp:44
プリミティブな変数を管理するコンテナクラス
Definition: Freight.hpp:18
TEST_CLASS(ArrayTest)
Definition: ArrayTest.cpp:19