⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testtharraystringfix.pas

📁 delphi通过OCI访问ORACLE
💻 PAS
字号:
unit testTHArrayStringFix;

interface

uses
 SysUtils, TestFrameWork, DynamicArrays;

type
 TTestTHArrayStringFix = class(TTestCase)
 private
 protected
    procedure SetUp; override;
    procedure TearDown; override;
 published
   procedure testTHArrayStringFix1;
   procedure testTHArrayStringFix2;
   procedure testTHArrayStringFix3;
   procedure testTHArrayStringFix4;
   procedure testTHArrayStringFix5;
   procedure testTHArrayStringFixZeroLength;
end;

implementation

procedure TTestTHArrayStringFix.SetUp;
begin

end;

procedure TTestTHArrayStringFix.TearDown;
begin

end;

procedure TTestTHArrayStringFix.testTHArrayStringFix1;
var
  arr:THArrayStringFix;
begin
 try
  arr := THArrayStringFix.Create;
  Check(False);
 except
  on E:Exception do
    CheckEquals('Use CreateSize to create THArrayStringFix!', E.Message);
 end;

 { roma 23.01.2005
 try
  arr := THArrayStringFix.CreateSize(0);
  Check(False);
 except
  on E:Exception do
    CheckEquals('The parameter Size cannot be zero!', E.Message);
 end;
 }
end;

procedure TTestTHArrayStringFix.testTHArrayStringFix2;
var
  arr:THArrayStringFix;
begin
  arr := THArrayStringFix.CreateSize(5);

  CheckEquals(0, arr.Count);

  arr.AddValue('');
  arr.AddValue('a');
  arr.AddValue('11');
  arr.AddValue('bbb');
  arr.AddValue('bbbb');
  arr.AddValue('bbbbb');
  arr.AddValue('bbbbbb');

  CheckEquals(7, arr.Count);

  CheckEquals('', arr[0]);
  CheckEquals('a', arr[1]);
  CheckEquals('11', arr[2]);
  CheckEquals('bbb', arr[3]);
  CheckEquals('bbbb', arr[4]);
  CheckEquals('bbbbb', arr[5]);
  CheckEquals('bbbbb', arr[6]);

  CheckEquals(-1, arr.IndexOf('bbbbbb'));
  CheckEquals(-1, arr.IndexOf('aa'));
  CheckEquals(-1, arr.IndexOf('1'));
  CheckEquals(-1, arr.IndexOf('bb'));

  CheckEquals(0, arr.IndexOf(''));
  CheckEquals(2, arr.IndexOf('11'));
  CheckEquals(1, arr.IndexOf('a'));
  CheckEquals(3, arr.IndexOf('bbb'));
  CheckEquals(4, arr.IndexOf('bbbb'));
  CheckEquals(5, arr.IndexOf('bbbbb'));

  arr.Free;
end;

procedure TTestTHArrayStringFix.testTHArrayStringFix3;
var
  arr:THArrayStringFix;
begin
  arr := THArrayStringFix.CreateSize(5);

  CheckEquals(0, arr.Count);

  try
   arr.Value[0] := 'aaa';
   Check(False);
  except
   on E:ERangeError do
    CheckEquals('Element with index 0 not found !', E.Message);
  end;

  try
   arr.Value[1] := 'aaa';
   Check(False);
  except
   on E:ERangeError do
    CheckEquals('Element with index 1 not found !', E.Message);
  end;

  arr.Free;
end;

procedure TTestTHArrayStringFix.testTHArrayStringFix4;
var
  arr:THArrayStringFix;
begin
  arr := THArrayStringFix.CreateSize(1024);

  CheckEquals(0, arr.Count);

  CheckEquals(-1, arr.IndexOf(''));
  CheckEquals(-1, arr.IndexOf('n'));
  CheckEquals(-1, arr.IndexOfFrom('', 1));
  CheckEquals(-1, arr.IndexOf('g'), 10);

  arr.AddValue('4444');
  arr.AddValue('1234567890');

  CheckEquals(-1, arr.IndexOf(''));
  CheckEquals(-1, arr.IndexOf('n'));
  CheckEquals(-1, arr.IndexOf('4'));
  CheckEquals(-1, arr.IndexOf('444'));
  CheckEquals( 0, arr.IndexOf('4444'));
  CheckEquals(-1, arr.IndexOf('123456789'));
  CheckEquals( 1, arr.IndexOf('1234567890'));

  CheckEquals( 1, arr.IndexOfFrom('1234567890', 1));
  CheckEquals(-1, arr.IndexOf('1234567890'), 2);
  CheckEquals(-1, arr.IndexOf('1234567890'), 3);
  CheckEquals(-1, arr.IndexOf('1234567890'), 4);

end;

procedure TTestTHArrayStringFix.testTHArrayStringFix5;
var
  arr:THArrayStringFix;
begin
  arr := THArrayStringFix.CreateSize(1);

  CheckEquals(0, arr.Count);

  arr.AddValue('');
  arr.AddValue('a');
  arr.AddValue('11');
  arr.AddValue('bbb');
  arr.AddValue('5555');
  arr.AddValue('dfgh');
  arr.AddValue('\');

  CheckEquals(7, arr.Count);

  CheckEquals('', arr[0]);
  CheckEquals('a', arr[1]);
  CheckEquals('1', arr[2]);
  CheckEquals('b', arr[3]);
  CheckEquals('5', arr[4]);
  CheckEquals('d', arr[5]);
  CheckEquals('\', arr[6]);

  CheckEquals(-1, arr.IndexOf('bbbbbb'));
  CheckEquals(-1, arr.IndexOf('aa'));
  CheckEquals( 2, arr.IndexOf('1'));
  CheckEquals(-1, arr.IndexOf('bb'));

  CheckEquals( 0, arr.IndexOf(''));
  CheckEquals(-1, arr.IndexOf('11'));
  CheckEquals( 1, arr.IndexOf('a'));
  CheckEquals(-1, arr.IndexOf('bbb'));
  CheckEquals(-1, arr.IndexOf('5555'));
  CheckEquals( 6, arr.IndexOf('\'));

  arr.Free;
end;


procedure TTestTHArrayStringFix.testTHArrayStringFixZeroLength;
var
  arr:THArrayStringFix;
begin
  arr := THArrayStringFix.CreateSize(0);
  CheckEquals(0, arr.Count);

  arr.AddValue('');
  CheckEquals(1, arr.Count);
  CheckEquals('', arr[0]);

  arr.AddValue('a');
  CheckEquals(2, arr.Count);
  CheckEquals('', arr[0]);
  CheckEquals('', arr[1]);

  arr.AddValue('a1');
  CheckEquals(3, arr.Count);
  CheckEquals('', arr[0]);
  CheckEquals('', arr[1]);
  CheckEquals('', arr[2]);

  arr.Free;
end;

initialization
 TestFramework.RegisterTest(TTestTHArrayStringFix.Suite);
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -