// $Id$ // ============================================================================ // // = LIBRARY // tests // // = FILENAME // Collection_Test.cpp // // = DESCRIPTION // This is a simple test of the ACE collection classes and its // iterators. // // = AUTHOR // Irfan Pyarali // // ============================================================================ #include "test_config.h" ACE_RCSID(tests, Collection_Test, "$Id$") #include "ace/Containers.h" typedef int DATA; int main (int, ACE_TCHAR *[]) { ACE_START_TEST (ACE_TEXT ("Collection_Test")); typedef ACE_Unbounded_Set UNBOUNDED_SET; typedef ACE_Unbounded_Set_Iterator UNBOUNDED_SET_ITERATOR; { UNBOUNDED_SET unbounded_set; unbounded_set.insert (1); unbounded_set.insert (2); { for (UNBOUNDED_SET::iterator iterator = unbounded_set.begin (); iterator != unbounded_set.end (); ++iterator) { ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d\n"), (*iterator))); } } { UNBOUNDED_SET_ITERATOR iterator (unbounded_set); while (!iterator.done ()) { DATA *data = 0; iterator.next (data); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d\n"), (*data))); iterator.advance (); } } } typedef ACE_Array ARRAY; typedef ACE_Array_Iterator ARRAY_ITERATOR; { ARRAY array; } { ARRAY array (0); } { ARRAY array1; array1.size (2); array1[0] = 4; array1[1] = 4; ARRAY array2 (2, 4); ARRAY array3 (array2); ARRAY array4; array4 = array2; ACE_ASSERT (array1 == array2); ACE_ASSERT (array1 == array3); ACE_ASSERT (array1 == array4); { for (size_t i = 0; i != array1.size (); ++i) { ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d\n"), array1[i])); ACE_ASSERT (array1[i] == 4); } } { ARRAY_ITERATOR iterator (array1); while (!iterator.done ()) { DATA *data = 0; iterator.next (data); ACE_DEBUG ((LM_DEBUG, ACE_TEXT ("%d\n"), (*data))); ACE_ASSERT (*data == 4); iterator.advance (); } } } ACE_END_TEST; return 0; } #if defined (ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION) template class ACE_Unbounded_Set; template class ACE_Unbounded_Set_Iterator; #if (ACE_SIZEOF_INT != 4) // These might be already instantiated in ace/stats.cpp // (if ACE_INT32 == int) template class ACE_Node; #endif /* ACE_SIZEOF_INT != 4 */ template class ACE_Array; template class ACE_Array_Base; template class ACE_Array_Iterator; #elif defined (ACE_HAS_TEMPLATE_INSTANTIATION_PRAGMA) #pragma instantiate ACE_Unbounded_Set #pragma instantiate ACE_Unbounded_Set_Iterator #pragma instantiate ACE_Node #pragma instantiate ACE_Array #pragma instantiate ACE_Array_Base #pragma instantiate ACE_Array_Iterator #endif /* ACE_HAS_EXPLICIT_TEMPLATE_INSTANTIATION */