]> git.saurik.com Git - wxWidgets.git/blobdiff - samples/console/console.cpp
Initialise hash table with string key
[wxWidgets.git] / samples / console / console.cpp
index 40c664bb0833ac449e9211538eb6aeca9de2bbff..43669bf593d7356eb7f48fb57ba84e8c2566426a 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        samples/console/console.cpp
-// Purpose:     a sample console (as opposed to GUI) progam using wxWindows
+// Purpose:     a sample console (as opposed to GUI) progam using wxWidgets
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     04.10.99
@@ -38,7 +38,7 @@
 
 /*
    A note about all these conditional compilation macros: this file is used
-   both as a test suite for various non-GUI wxWindows classes and as a
+   both as a test suite for various non-GUI wxWidgets classes and as a
    scratchpad for quick tests. So there are two compilation modes: if you
    define TEST_ALL all tests are run, otherwise you may enable the individual
    tests individually in the "#else" branch below.
@@ -63,7 +63,6 @@
     #define TEST_FILENAME
     #define TEST_FILETIME
  //   #define TEST_FTP  --FIXME! (RN)
-    #define TEST_HASH
     #define TEST_HASHMAP
     #define TEST_HASHSET
     #define TEST_INFO_FUNCTIONS
     #define TEST_TEXTSTREAM
     #define TEST_THREADS
     #define TEST_TIMER
-    #define TEST_UNICODE
     // #define TEST_VCARD            -- don't enable this (VZ)
 //    #define TEST_VOLUME   --FIXME! (RN)
     #define TEST_WCHAR
     #define TEST_ZIP
-    #define TEST_ZLIB
-    #define TEST_GZIP
 
 #else // #if TEST_ALL
 
@@ -1126,233 +1122,6 @@ static void TestFileSetTimes()
 
 #endif // TEST_FILETIME
 
-// ----------------------------------------------------------------------------
-// wxHashTable
-// ----------------------------------------------------------------------------
-
-#ifdef TEST_HASH
-
-#include "wx/hash.h"
-
-struct Foo
-{
-    Foo(int n_) { n = n_; count++; }
-    ~Foo() { count--; }
-
-    int n;
-
-    static size_t count;
-};
-
-size_t Foo::count = 0;
-
-WX_DECLARE_LIST(Foo, wxListFoos);
-WX_DECLARE_HASH(Foo, wxListFoos, wxHashFoos);
-
-#include "wx/listimpl.cpp"
-
-WX_DEFINE_LIST(wxListFoos);
-
-#include "wx/timer.h"
-
-static void TestHash()
-{
-    wxPuts(_T("*** Testing wxHashTable ***\n"));
-    const int COUNT = 100;
-
-    wxStopWatch sw;
-
-    sw.Start();
-
-    {
-        wxHashTable hash(wxKEY_INTEGER, 10), hash2(wxKEY_STRING);
-        wxObject o;
-        int i;
-
-        for ( i = 0; i < COUNT; ++i )
-            hash.Put(i, &o + i);
-
-        hash.BeginFind();
-        wxHashTable::compatibility_iterator it = hash.Next();
-        i = 0;
-
-        while (it)
-        {
-            ++i;
-            it = hash.Next();
-        }
-
-        if (i != COUNT)
-            wxPuts(_T("Error in wxHashTable::compatibility_iterator\n"));
-
-        for ( i = 99; i >= 0; --i )
-            if( hash.Get(i) != &o + i )
-                wxPuts(_T("Error in wxHashTable::Get/Put\n"));
-
-        for ( i = 0; i < COUNT; ++i )
-            hash.Put(i, &o + i + 20);
-
-        for ( i = 99; i >= 0; --i )
-            if( hash.Get(i) != &o + i)
-                wxPuts(_T("Error (2) in wxHashTable::Get/Put\n"));
-
-        for ( i = 0; i < COUNT/2; ++i )
-            if( hash.Delete(i) != &o + i)
-                wxPuts(_T("Error in wxHashTable::Delete\n"));
-
-        for ( i = COUNT/2; i < COUNT; ++i )
-            if( hash.Get(i) != &o + i)
-                wxPuts(_T("Error (3) in wxHashTable::Get/Put\n"));
-
-        for ( i = 0; i < COUNT/2; ++i )
-            if( hash.Get(i) != &o + i + 20)
-                wxPuts(_T("Error (4) in wxHashTable::Put/Delete\n"));
-
-        for ( i = 0; i < COUNT/2; ++i )
-            if( hash.Delete(i) != &o + i + 20)
-                wxPuts(_T("Error (2) in wxHashTable::Delete\n"));
-
-        for ( i = 0; i < COUNT/2; ++i )
-            if( hash.Get(i) != NULL)
-                wxPuts(_T("Error (5) in wxHashTable::Put/Delete\n"));
-
-        hash2.Put(_T("foo"), &o + 1);
-        hash2.Put(_T("bar"), &o + 2);
-        hash2.Put(_T("baz"), &o + 3);
-
-        if (hash2.Get(_T("moo")) != NULL)
-            wxPuts(_T("Error in wxHashTable::Get\n"));
-
-        if (hash2.Get(_T("bar")) != &o + 2)
-            wxPuts(_T("Error in wxHashTable::Get/Put\n"));
-
-        hash2.Put(_T("bar"), &o + 0);
-
-        if (hash2.Get(_T("bar")) != &o + 2)
-            wxPuts(_T("Error (2) in wxHashTable::Get/Put\n"));
-    }
-
-    // and now some corner-case testing; 3 and 13 hash to the same bucket
-    {
-        wxHashTable hash(wxKEY_INTEGER, 10);
-        wxObject dummy;
-
-        hash.Put(3, &dummy);
-        hash.Delete(3);
-
-        if (hash.Get(3) != NULL)
-            wxPuts(_T("Corner case 1 failure\n"));
-
-        hash.Put(3, &dummy);
-        hash.Put(13, &dummy);
-        hash.Delete(3);
-
-        if (hash.Get(3) != NULL)
-            wxPuts(_T("Corner case 2 failure\n"));
-
-        hash.Delete(13);
-
-        if (hash.Get(13) != NULL)
-            wxPuts(_T("Corner case 3 failure\n"));
-
-        hash.Put(3, &dummy);
-        hash.Put(13, &dummy);
-        hash.Delete(13);
-
-        if (hash.Get(13) != NULL)
-            wxPuts(_T("Corner case 4 failure\n"));
-
-        hash.Delete(3);
-
-        if (hash.Get(3) != NULL)
-            wxPuts(_T("Corner case 5 failure\n"));
-    }
-
-    {
-        wxHashTable hash(wxKEY_INTEGER, 10);
-        wxObject dummy;
-
-        hash.Put(3, 7, &dummy + 7);
-        hash.Put(4, 8, &dummy + 8);
-
-        if (hash.Get(7) != NULL) wxPuts(_T("Key/Hash 1 failure\n"));
-        if (hash.Get(3, 7) != &dummy + 7) wxPuts(_T("Key/Hash 2 failure\n"));
-        if (hash.Get(4) != NULL) wxPuts(_T("Key/Hash 3 failure\n"));
-        if (hash.Get(3) != NULL) wxPuts(_T("Key/Hash 4 failure\n"));
-        if (hash.Get(8) != NULL) wxPuts(_T("Key/Hash 5 failure\n"));
-        if (hash.Get(8, 4) != NULL) wxPuts(_T("Key/Hash 6 failure\n"));
-
-        if (hash.Delete(7) != NULL) wxPuts(_T("Key/Hash 7 failure\n"));
-        if (hash.Delete(3) != NULL) wxPuts(_T("Key/Hash 8 failure\n"));
-        if (hash.Delete(3, 7) != &dummy + 7) wxPuts(_T("Key/Hash 8 failure\n"));
-    }
-
-    {
-        wxHashFoos hash;
-        hash.DeleteContents(true);
-
-        wxPrintf(_T("Hash created: %u foos in hash, %u foos totally\n"),
-               hash.GetCount(), Foo::count);
-
-        static const int hashTestData[] =
-        {
-            0, 1, 17, -2, 2, 4, -4, 345, 3, 3, 2, 1,
-        };
-
-        size_t n;
-        for ( n = 0; n < WXSIZEOF(hashTestData); n++ )
-        {
-            hash.Put(hashTestData[n], n, new Foo(n));
-        }
-
-        wxPrintf(_T("Hash filled: %u foos in hash, %u foos totally\n"),
-               hash.GetCount(), Foo::count);
-
-        wxPuts(_T("Hash access test:"));
-        for ( n = 0; n < WXSIZEOF(hashTestData); n++ )
-        {
-            wxPrintf(_T("\tGetting element with key %d, value %d: "),
-                   hashTestData[n], n);
-            Foo *foo = hash.Get(hashTestData[n], n);
-            if ( !foo )
-            {
-                wxPrintf(_T("ERROR, not found.\n"));
-            }
-            else
-            {
-                wxPrintf(_T("%d (%s)\n"), foo->n,
-                       (size_t)foo->n == n ? "ok" : "ERROR");
-            }
-        }
-
-        wxPrintf(_T("\nTrying to get an element not in hash: "));
-
-        if ( hash.Get(1234) || hash.Get(1, 0) )
-        {
-            wxPuts(_T("ERROR: found!"));
-        }
-        else
-        {
-            wxPuts(_T("ok (not found)"));
-        }
-
-        Foo* foo = hash.Delete(0);
-
-        wxPrintf(_T("Removed 1 foo: %u foos still there\n"), Foo::count);
-
-        delete foo;
-
-        wxPrintf(_T("Foo deleted: %u foos left\n"), Foo::count);
-    }
-
-    wxPrintf(_T("Hash destroyed: %u foos left\n"), Foo::count);
-    wxPuts(_T("*** Testing wxHashTable finished ***\n"));
-
-    wxPrintf(_T("Time: %ld\n"), sw.Time());
-}
-
-#endif // TEST_HASH
-
 // ----------------------------------------------------------------------------
 // wxHashMap
 // ----------------------------------------------------------------------------
@@ -2369,7 +2138,7 @@ static void TestDbOpen()
 
 /*
    NB: this stuff was taken from the glibc test suite and modified to build
-       in wxWindows: if I read the copyright below properly, this shouldn't
+       in wxWidgets: if I read the copyright below properly, this shouldn't
        be a problem
  */
 
@@ -3035,7 +2804,7 @@ static void TestSocketClient()
 {
     wxPuts(_T("*** Testing wxSocketClient ***\n"));
 
-    static const wxChar *hostname = _T("www.wxwindows.org");
+    static const wxChar *hostname = _T("www.wxwidgets.org");
 
     wxIPV4address addr;
     addr.Hostname(hostname);
@@ -3093,7 +2862,7 @@ static bool TestFtpConnect()
     wxPuts(_T("*** Testing FTP connect ***"));
 
 #ifdef FTP_ANONYMOUS
-    static const wxChar *hostname = _T("ftp.wxwindows.org");
+    static const wxChar *hostname = _T("ftp.wxwidgets.org");
 
     wxPrintf(_T("--- Attempting to connect to %s:21 anonymously...\n"), hostname);
 #else // !FTP_ANONYMOUS
@@ -3752,7 +3521,7 @@ static void TestVCardWrite()
         // set some fields
         vcard.SetName("Zeitlin", "Vadim");
         vcard.SetFullName("Vadim Zeitlin");
-        vcard.SetOrganization("wxWindows", "R&D");
+        vcard.SetOrganization("wxWidgets", "R&D");
 
         // just dump the vCard back
         wxPuts(_T("Entire vCard follows:\n"));
@@ -3825,43 +3594,6 @@ static void TestFSVolume()
 // wide char and Unicode support
 // ----------------------------------------------------------------------------
 
-#ifdef TEST_UNICODE
-
-static void TestUnicodeToFromAscii()
-{
-    wxPuts(_T("Testing wxString::To/FromAscii()\n"));
-
-    static const char *msg = "Hello, world!";
-    wxString s = wxString::FromAscii(msg);
-
-    wxPrintf(_T("Message in Unicode: %s\n"), s.c_str());
-    printf("Message in ASCII: %s\n", (const char *)s.ToAscii());
-
-    wxPutchar(_T('\n'));
-}
-
-#include "wx/textfile.h"
-
-static void TestUnicodeTextFileRead()
-{
-    wxPuts(_T("Testing wxTextFile in Unicode build\n"));
-
-    wxTextFile file;
-    if ( file.Open(_T("testdata.fc"), wxConvLocal) )
-    {
-        const size_t count = file.GetLineCount();
-        for ( size_t n = 0; n < count; n++ )
-        {
-            const wxString& s = file[n];
-
-            wxPrintf(_T("Line %u: \"%s\" (len %u, last char = '%c')\n"),
-                     (unsigned)n, s.c_str(), (unsigned)s.length(), s.Last());
-        }
-    }
-}
-
-#endif // TEST_UNICODE
-
 #ifdef TEST_WCHAR
 
 #include "wx/strconv.h"
@@ -4059,190 +3791,6 @@ static void TestZipFileSystem()
 
 #endif // TEST_ZIP
 
-// ----------------------------------------------------------------------------
-// ZLIB stream
-// ----------------------------------------------------------------------------
-
-#ifdef TEST_ZLIB
-
-#include "wx/zstream.h"
-#include "wx/wfstream.h"
-
-static const wxString FILENAME_GZ = _T("test.gz");
-static const wxChar *TEST_DATA = _T("hello and hello and hello and hello and hello");
-
-static void TestZlibStreamWrite()
-{
-    wxPuts(_T("*** Testing Zlib stream reading ***\n"));
-
-    wxFileOutputStream fileOutStream(FILENAME_GZ);
-    wxZlibOutputStream ostr(fileOutStream);
-    wxPrintf(_T("Compressing the test string... "));
-    ostr.Write(TEST_DATA, wxStrlen(TEST_DATA) + 1);
-    if ( !ostr )
-    {
-        wxPuts(_T("(ERROR: failed)"));
-    }
-    else
-    {
-        wxPuts(_T("(ok)"));
-    }
-
-    wxPuts(_T("\n----- done ------"));
-}
-
-static void TestZlibStreamRead()
-{
-    wxPuts(_T("*** Testing Zlib stream reading ***\n"));
-
-    wxFileInputStream fileInStream(FILENAME_GZ);
-    wxZlibInputStream istr(fileInStream);
-    wxPrintf(_T("Archive size: %u\n"), istr.GetSize());
-
-    wxPuts(_T("Dumping the file:"));
-    while ( !istr.Eof() )
-    {
-        wxPutchar(istr.GetC());
-        fflush(stdout);
-    }
-
-    wxPuts(_T("\n----- done ------"));
-}
-
-#endif // TEST_ZLIB
-
-// ----------------------------------------------------------------------------
-// Gzip streams
-// ----------------------------------------------------------------------------
-
-#ifdef TEST_GZIP
-
-#include "wx/wfstream.h"
-#include "wx/gzstream.h"
-#include "wx/filename.h"
-#include "wx/txtstrm.h"
-
-// Reads two input streams and verifies that they are the same (and non-emtpy)
-//
-void GzipVerify(wxInputStream &in1, wxInputStream &in2)
-{
-    if (!in1 || !in2) {
-        wxPuts(_T("    Can't verify"));
-        return;
-    }
-
-    const int BUFSIZE = 8192;
-    wxCharBuffer buf1(BUFSIZE);
-    wxCharBuffer buf2(BUFSIZE);
-    bool none = true;
-
-    for (;;)
-    {
-        int n1 = in1.Read(buf1.data(), BUFSIZE).LastRead();
-        int n2 = in2.Read(buf2.data(), BUFSIZE).LastRead();
-
-        if (n1 != n2 || (n1 && memcmp(buf1, buf2, n1) != 0) || (!n1 && none)) {
-            wxPuts(_T("    Failure"));
-            break;
-        }
-
-        if (!n1) {
-            wxPuts(_T("    Success"));
-            break;
-        }
-
-        none = false;
-    }
-
-    while (in1.IsOk())
-        in1.Read(buf1.data(), BUFSIZE);
-    while (in2.IsOk())
-        in2.Read(buf2.data(), BUFSIZE);
-}
-
-// Write a gzip file and read it back.
-//
-void TestGzip()
-{
-    wxPuts(_T("*** Testing gzip streams ***\n"));
-
-    const wxString testname = _T("gziptest");
-    const wxString gzipname = testname + _T(".gz");
-
-    // write some random test data to a testfile
-    wxPuts(_T("Writing random test data to ") + testname + _T("..."));
-    {
-        wxFFileOutputStream outstream(testname);
-        wxTextOutputStream textout(outstream);
-
-        for (int i = 0; i < 1000 && outstream.Ok(); i++)
-            textout << rand() << rand() << rand() << rand() << endl;
-
-        wxPuts(_T("    Done"));
-    }
-
-    wxFileName fn(testname);
-    wxDateTime dt = fn.GetModificationTime();
-    wxFFileInputStream instream(testname);
-
-    // try writing a gzip file
-    wxPuts(_T("Writing ") + gzipname + _T(" using wxGzipOutputStream..."));
-    {
-        wxFFileOutputStream outstream(gzipname);
-        wxGzipOutputStream gzip(outstream, testname, dt);
-
-        if (!gzip.Write(instream))
-            wxPuts(_T("    Failure"));
-        else
-            wxPuts(_T("    Success"));
-    }
-
-    // try reading the gzip file
-    wxPuts(_T("Reading ") + gzipname + _T(" using wxGzipInputStream..."));
-    {
-        instream.SeekI(0);
-        wxFFileInputStream instream2(gzipname);
-        wxGzipInputStream gzip(instream2);
-        GzipVerify(instream, gzip);
-
-        if (gzip.GetName() != fn.GetFullName())
-            wxPuts(gzipname + _T(" contains incorrect filename: ")
-                    + gzip.GetName());
-        if (dt.IsValid() && gzip.GetDateTime() != dt)
-            wxPuts(gzipname + _T(" contains incorrect timestamp: ")
-                    + gzip.GetDateTime().Format());
-    }
-
-#ifdef __UNIX__
-    // then verify it using gzip program if it is in the path
-    wxPuts(_T("Reading ") + gzipname + _T(" using gzip program..."));
-    wxFFile file(popen((_T("gzip -d -c ") + gzipname).mb_str(), "r"));
-    if (file.fp()) {
-        wxFFileInputStream instream2(file);
-        instream.SeekI(0);
-        GzipVerify(instream, instream2);
-        pclose(file.fp());
-        file.Detach();
-    }
-
-    // try reading a gzip created by gzip program
-    wxPuts(_T("Reading output of gzip program using wxGzipInputStream..."));
-    file.Attach(popen((_T("gzip -c ") + testname).mb_str(), "r"));
-    if (file.fp()) {
-        wxFFileInputStream instream2(file);
-        wxGzipInputStream gzip(instream2);
-        instream.SeekI(0);
-        GzipVerify(instream, gzip);
-        pclose(file.fp());
-        file.Detach();
-    }
-#endif
-
-    wxPuts(_T("\n--- Done gzip streams ---"));
-}
-
-#endif // TEST_GZIP
-
 // ----------------------------------------------------------------------------
 // date time
 // ----------------------------------------------------------------------------
@@ -5737,7 +5285,7 @@ int main(int argc, char **argv)
     wxInitializer initializer;
     if ( !initializer )
     {
-        fprintf(stderr, "Failed to initialize the wxWindows library, aborting.");
+        fprintf(stderr, "Failed to initialize the wxWidgets library, aborting.");
 
         return -1;
     }
@@ -5947,10 +5495,6 @@ int main(int argc, char **argv)
     #endif
 #endif // TEST_FTP
 
-#ifdef TEST_HASH
-    TestHash();
-#endif // TEST_HASH
-
 #ifdef TEST_HASHMAP
     TestHashMap();
 #endif // TEST_HASHMAP
@@ -6091,13 +5635,6 @@ int main(int argc, char **argv)
     TestFSVolume();
 #endif // TEST_VOLUME
 
-#ifdef TEST_UNICODE
-    TestUnicodeTextFileRead();
-    #if TEST_ALL
-        TestUnicodeToFromAscii();
-    #endif
-#endif // TEST_UNICODE
-
 #ifdef TEST_WCHAR
     TestUtf8();
     TestEncodingConverter();
@@ -6108,15 +5645,6 @@ int main(int argc, char **argv)
     TestZipFileSystem();
 #endif // TEST_ZIP
 
-#ifdef TEST_ZLIB
-    TestZlibStreamWrite();
-    TestZlibStreamRead();
-#endif // TEST_ZLIB
-
-#ifdef TEST_GZIP
-    TestGzip();
-#endif
-
     wxUnusedVar(argc);
     wxUnusedVar(argv);
     return 0;