|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- unit uutlHashSetTests;
-
- {$mode objfpc}{$H+}
-
- interface
-
- uses
- Classes, SysUtils, TestFramework,
- uutlGenerics;
-
- type
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- TIntSet = specialize TutlHashSet<Integer>;
- TutlHastSetTests = class(TTestCase)
- private
- fIntSet: TIntSet;
-
- protected
- procedure SetUp; override;
- procedure TearDown; override;
-
- published
- procedure Prop_Count;
-
- procedure Meth_Add;
- procedure Meth_Contains;
- procedure Meth_IndexOf;
- procedure Meth_Remove;
- procedure Meth_Delete;
- end;
-
- implementation
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- //TutlHastSetTests//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TutlHastSetTests.SetUp;
- begin
- fIntSet := TIntSet.Create(true);
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TutlHastSetTests.TearDown;
- begin
- FreeAndNil(fIntSet);
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TutlHastSetTests.Prop_Count;
- begin
- AssertEquals(0, fIntSet.Count);
- fIntSet.Add(123);
- AssertEquals(1, fIntSet.Count);
- fIntSet.Add(234);
- AssertEquals(2, fIntSet.Count);
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TutlHastSetTests.Meth_Add;
- begin
- AssertTrue (fIntSet.Add(123));
- AssertFalse(fIntSet.Add(123));
- AssertTrue (fIntSet.Add(234));
- AssertFalse(fIntSet.Add(234));
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TutlHastSetTests.Meth_Contains;
- begin
- AssertFalse(fIntSet.Contains(123));
- fIntSet.Add(123);
- AssertTrue (fIntSet.Contains(123));
-
- AssertFalse(fIntSet.Contains(234));
- fIntSet.Add(234);
- AssertTrue (fIntSet.Contains(234));
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TutlHastSetTests.Meth_IndexOf;
- begin
- AssertEquals(-1, fIntSet.IndexOf(234));
- fIntSet.Add(234);
- AssertEquals(0, fIntSet.IndexOf(234));
-
- AssertEquals(-1, fIntSet.IndexOf(345));
- fIntSet.Add(345);
- AssertEquals(0, fIntSet.IndexOf(234));
- AssertEquals(1, fIntSet.IndexOf(345));
-
- AssertEquals(-1, fIntSet.IndexOf(123));
- fIntSet.Add(123);
- AssertEquals(0, fIntSet.IndexOf(123));
- AssertEquals(1, fIntSet.IndexOf(234));
- AssertEquals(2, fIntSet.IndexOf(345));
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TutlHastSetTests.Meth_Remove;
- begin
- AssertFalse(fIntSet.Remove(123));
- fIntSet.Add(123);
- AssertTrue(fIntSet.Remove(123));
-
- AssertFalse(fIntSet.Remove(234));
- fIntSet.Add(234);
- AssertTrue(fIntSet.Remove(234));
- end;
-
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- procedure TutlHastSetTests.Meth_Delete;
- begin
- fIntSet.Add(123);
- fIntSet.Delete(0);
- AssertTrue(fIntSet.IsEmpty);
- end;
-
- initialization
- RegisterTest(TutlHastSetTests.Suite);
-
- end.
-
|