1
|
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.
|