10using namespace Microsoft::VisualStudio::CppUnitTestFramework;
17 TEST_CLASS_INITIALIZE (ClassInitialize)
19 Logger::WriteMessage (
"LinkedListTest class initialize.\n");
22 TEST_CLASS_CLEANUP (ClassCleanup)
24 Logger::WriteMessage (
"LinkedListTest class cleanup.\n");
27 TEST_METHOD_INITIALIZE (MethodInitialize)
29 Logger::WriteMessage (
"LinkedListTest method initialize.\n");
32 TEST_METHOD_CLEANUP (MethodCleanup)
34 Logger::WriteMessage (
"LinkedListTest method cleanup.\n");
37 TEST_METHOD (LinkedListTest0)
41 for (
int i = 5; i > 0; i--)
46 for (
int i = 6; i <= 10; i++)
51 for (
int i = 0; i < linkedList.
Size (); i++)
54 auto value = linkedList[i];
55 output.
Format (_T (
"DATA:%d\n"), *value);
56 Logger::WriteMessage (output.
Ctr ());
60 linkedList.
Remove (notHit);
62 for (
int i = 1; i <= 10; i++)
68 Assert::AreEqual<SIZE_T> (0, linkedList.
Size ());
70 for (
int i = 5; i > 0; i--)
75 for (
int i = 6; i <= 10; i++)
80 for (
int i = 3; i >= 1; i--)
85 for (
int i = 8; i <= 10; i++)
90 Assert::AreEqual<SIZE_T> (4, linkedList.
Size ());
92 for (
int i = 0; i < linkedList.
Size (); i++)
95 auto value = linkedList[i];
96 output.
Format (_T (
"DATA:%d\n"), *value);
97 Logger::WriteMessage (output.
Ctr ());
101 Assert::AreEqual<SIZE_T> (0, linkedList.
Size ());
104 TEST_METHOD (LinkedListTest1)
108 for (
int i = 6; i <= 10; i++)
113 for (
int i = 5; i >= 1; i--)
119 for (
auto itr : linkedList)
121 Assert::AreEqual<int> (i++, itr, _T (
"invalid value get.\n"));
125 for (
auto& itr : linkedList)
127 Assert::AreEqual<int> (i++, itr, _T (
"invalid value get.\n"));
130 for (
int i = 0; i < 5; i++)
136 for (
auto itr : linkedList)
138 Assert::AreEqual<int> (i++, itr, _T (
"invalid value get.\n"));
142 for (
auto& itr : linkedList)
144 Assert::AreEqual<int> (i++, itr, _T (
"invalid value get.\n"));
147 while (linkedList.
Size ())
152 Assert::AreEqual<SIZE_T> (0, linkedList.
Size (), _T (
"invalid size.\n"));
154 for (
int i = 4; i >= 0; i--)
159 for (
int i = 5; i < 10; i++)
166 for (
int i = 4; i >= 0; i--)
171 for (
int i = 5; i < 10; i++)
177 for (
auto itr : linkedList)
179 Assert::AreEqual<int> (i++, itr, _T (
"invalid value get.\n"));
183 for (
auto& itr : linkedList)
185 Assert::AreEqual<int> (i++, itr, _T (
"invalid value get.\n"));
189 for (
int i = 0; i < linkedList.
Size (); i++)
191 int* piVal = linkedList.
Get (i);
192 Assert::AreEqual<int> (i, *piVal);
193 if (*piVal == 2) iTarget = *piVal;
196 linkedList.
Remove (iTarget);
197 Assert::AreEqual<SIZE_T> (9, linkedList.
Size ());
200 TEST_METHOD (LinkedListTest2)
205 for (
int i = 1; i <= 10; i++)
207 message.
Format (_T (
"This line is No.%d.\n"), i);
211 for (
auto item : linkedList)
213 Logger::WriteMessage (item.Ctr ());
216 for (
auto& item : linkedList)
218 Logger::WriteMessage (item.Ctr ());
221 SIZE_T currentSize = linkedList.
Size ();
222 for (
int i = 1; i <= currentSize; i++)
226 Logger::WriteMessage (response.
Ctr ());
227 message.
Format (_T (
"This line is No.%d.\n"), i);
228 Assert::IsTrue (message == response);
232 TEST_METHOD (LinkedListTest3)
238 for (
int i = 0; i < 10; i++)
240 data.
Format (_T (
"DATA No.%02d\n"), i);
247 for (
auto& item2 : linkedList2)
249 const auto& item1 = linkedList1[index++];
250 Assert::IsTrue (0 == lstrcmp ((*item1).Ctr (), item2.Ctr ()));
253 linkedList1.
Clear ();
256 for (
auto itr = linkedList2.
begin (); itr != linkedList2.
end (); ++itr)
258 data.
Format (_T (
"DATA No.%02d\n"), index++);
259 Logger::WriteMessage (data.
Ctr ());
260 Assert::IsTrue (0 == lstrcmp (data.
Ctr (), (*itr).Ctr ()));
264 for (
auto& itr = linkedList2.
begin (); itr != linkedList2.
end (); ++itr)
266 data.
Format (_T (
"DATA No.%02d\n"), index++);
267 Logger::WriteMessage (data.
Ctr ());
269 Assert::IsTrue (0 == lstrcmp (data.
Ctr (), (*itr).Ctr ()));
275 data.
Format (_T (
"DATA No.%02d\n"), index++);
276 Logger::WriteMessage (data.
Ctr ());
277 Assert::IsTrue (0 == lstrcmp (data.
Ctr (), itr.Ctr ()));
283 data.
Format (_T (
"DATA No.%02d\n"), index++);
284 Logger::WriteMessage (data.
Ctr ());
285 Assert::IsTrue (0 == lstrcmp (data.
Ctr (), itr.Ctr ()));
文字列に関するWindowsAPIを集約したクラス
文字列に関するWindowsAPIを集約したクラス
TString &APIENTRY Format(LPCTSTR format,...)
フォーマットに従ってパラメータを文字列化します。
LPCTSTR APIENTRY Ctr() const
内部で確保している文字列ポインタを取得します。
T *APIENTRY Get(SIZE_T index) const
指定したインデックスの値を取得
VOID APIENTRY RemoveLast()
LinkedList<T>の末尾アイテムを削除
VOID APIENTRY Remove(T &item)
LinkedList<T>から値を削除
VOID APIENTRY AddFirst(T &item)
LinkedList<T>へ値を追加
LinkedListIterator< T > APIENTRY begin() const
for(auto n : list){}を使用できるようにするインターフェース
bool APIENTRY Dequeue(T &item)
LinkedList<T>から値を取得
VOID APIENTRY RemoveFirst()
LinkedList<T>の先頭アイテムを削除
LinkedListIterator< T > APIENTRY end() const
for(auto n : list){}を使用できるようにするインターフェース
VOID APIENTRY Clear()
領域の開放
VOID APIENTRY AddLast(T &item)
LinkedList<T>へ値を追加
SIZE_T APIENTRY Size() const
サイズを取得
VOID APIENTRY Enqueue(T &item)
LinkedList<T>へ値を追加