1 |
3
|
krennw
|
BUILDING THE C5 GENERIC COLLECTION LIBRARY FOR C#/CLI
|
2 |
|
|
Updated 2008-02-10
|
3 |
|
|
|
4 |
|
|
The C5 library can be built by opening the solution file C5.sln in the
|
5 |
|
|
current directory with Microsoft Visual Studio 2008 or Microsoft
|
6 |
|
|
Visual C# 2008 Express Edition and performing a build all.
|
7 |
|
|
|
8 |
|
|
Or execute 'msbuild C5.sln' from the command line in this directory.
|
9 |
|
|
|
10 |
|
|
This will build C5 in file C5/bin/Release/C5.dll
|
11 |
|
|
|
12 |
|
|
Building all in the C5.sln solution will also build these projects:
|
13 |
|
|
|
14 |
|
|
* The 'PreProcess' project generates some of the C5 sources by
|
15 |
|
|
preprocessing files. This is necessary for the C5 build.
|
16 |
|
|
|
17 |
|
|
* The 'docNet' project generates on-line documentation; see below.
|
18 |
|
|
|
19 |
|
|
* The 'UserGuideExample' project compiles the examples from chapter
|
20 |
|
|
11 of the technical report ITU-TR-2006-76
|
21 |
|
|
|
22 |
|
|
* The 'nunit' project compiles the unit tests but does not run them;
|
23 |
|
|
see below. An enormous number of compilation errors will result
|
24 |
|
|
unless you have NUnit 2 installed. The project is configured for
|
25 |
|
|
NUnit version 2.2.9 and was tested with that version.
|
26 |
|
|
|
27 |
|
|
The build should complete with a few dozen compilation warnings.
|
28 |
|
|
|
29 |
|
|
------------------------------------------------------------
|
30 |
|
|
|
31 |
|
|
Generating the online documentation
|
32 |
|
|
|
33 |
|
|
* Build C5 in Debug mode
|
34 |
|
|
|
35 |
|
|
* Run docNet/dodoc.cmd, e.g. by double-clicking in Explorer
|
36 |
|
|
|
37 |
|
|
* Press return
|
38 |
|
|
|
39 |
|
|
The generation process should take less than 20 seconds.
|
40 |
|
|
|
41 |
|
|
The generated documentation is in directory docNet/docbuild/ and
|
42 |
|
|
subdirectories. The start page is docNet/docbuild/frames.htm
|
43 |
|
|
|
44 |
|
|
Note: The generated online documentation is currently incomplete.
|
45 |
|
|
Please refer to the Technical Report (ITU-TR-2006-76) instead.
|
46 |
|
|
|
47 |
|
|
------------------------------------------------------------
|
48 |
|
|
|
49 |
|
|
Running the NUnit tests
|
50 |
|
|
|
51 |
|
|
Prerequisites:
|
52 |
|
|
|
53 |
|
|
* You must have NUnit installed (version 2.2.x).
|
54 |
|
|
|
55 |
|
|
* The nunit project (nunit/nunit.csproj) must include a reference to
|
56 |
|
|
to the installed nunit-framework.dll. Add the reference by
|
57 |
|
|
right-clicking "References" under "nunit" in Visual Studio's
|
58 |
|
|
Solution Explorer.
|
59 |
|
|
|
60 |
|
|
Steps to build and run unit tests:
|
61 |
|
|
|
62 |
|
|
* Build the project called "nunit".
|
63 |
|
|
|
64 |
|
|
* Start NUnit, select File > Open > nunit/bin/Debug/nunit.dll, or
|
65 |
|
|
simply double-click nunit/bin/Debug/nunit.dll
|
66 |
|
|
|
67 |
|
|
* Press Run in the NUnit user interface
|
68 |
|
|
|
69 |
|
|
There are more than 1400 NUnit test cases which should execute in less
|
70 |
|
|
than 30 seconds. All should pass when C5 is built in Debug mode.
|
71 |
|
|
|
72 |
|
|
Note 1: The Release builds of C5 use randomized hashing for
|
73 |
|
|
efficiency, whereas the Debug builds use deterministic hashing to
|
74 |
|
|
simplify testing. This means that approximately 13 hashtable test
|
75 |
|
|
cases will fail (harmlessly) when C5 is built and tested in Release
|
76 |
|
|
mode, using File > Open > nunit/bin/Release/nunit.dll
|
77 |
|
|
|
78 |
|
|
Note 2: C5 version 1.1.0 includes the test case
|
79 |
|
|
support.itemops.EqualityComparers.SeqequalityComparerViaBuilder4 which
|
80 |
|
|
works on VS2008 C#/CLR version 3.5, but failed on VS2005 with C#/CLR
|
81 |
|
|
2.0 due to a bug in that platform. Omit this test case if you need to
|
82 |
|
|
build C5 on VS2005 with C#/CLR 2.0. |