BUILDING THE C5 GENERIC COLLECTION LIBRARY FOR C#/CLI
Updated 2007-05-30

The C5 library can be built by opening the solution file C5.sln in the
current directory with Microsoft Visual Studio 2005 or Microsoft
Visual C# 2005 Express Edition and performing a build all.  

Or execute 'msbuild C5.sln' from the command line in this directory.

This will build C5 in file C5/bin/Release/C5.dll 

Building all in the C5.sln solution will also build these projects:

  * The 'PreProcess' project generates some of the C5 sources by
    preprocessing files.  This is necessary for the C5 build.

  * The 'docNet' project generates on-line documentation; see below.

  * The 'UserGuideExample' project compiles the examples from chapter
    11 of the technical report ITU-TR-2006-76

  * The 'nunit' project compiles the unit tests but does not run them;
    see below.  An enormous number of compilation errors will result
    unless you have NUnit 2 installed.  The project is configured for
    NUnit version 2.2.9 and was tested with that version.

The build should complete with a few compilation warnings.

------------------------------------------------------------

Generating the online documentation

 * Build C5 in Debug mode

 * Run docNet/dodoc.cmd, e.g. by double-clicking in Explorer

 * Press return

The generation process should take less than 20 seconds.

The generated documentation is in directory docNet/docbuild/ and
subdirectories.  The start page is docNet/docbuild/frames.htm

Note: The generated online documentation is currently incomplete.
Please refer to the Technical Report (ITU-TR-2006-76) instead.

------------------------------------------------------------

Running the NUnit tests

Prerequisites:

 * You must have NUnit installed (version 2.2.x). 

 * The nunit project (nunit/nunit.csproj) must include a reference to
   to the installed nunit-framework.dll.  Add the reference by
   right-clicking "References" under "nunit" in Visual Studio's
   Solution Explorer.

Steps to build and run unit tests:

 * Build the project called "nunit".  It must be built in Debug mode.
   In Release mode, approximately 13 hashtable test cases will fail
   because the Release builds of C5 use randomized hashing whereas the
   Debug builds use deterministic hashing to simplify testing.

 * Start NUnit, select File | Open | nunit/bin/Debug/nunit.dll, or
   simply double-click nunit/bin/Debug/nunit.dll

 * Press Run in the NUnit user interface

There are 1353 NUnit tests which should execute in less than 30
seconds.  All should pass except for a single one (which is due to
missing implementation of events on the class SortedArray).
