1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
program test_auger;
{$APPTYPE CONSOLE}
{$mode objfpc}
{$h+}
uses xraylib, xrltest, Classes, SysUtils, fpcunit, testreport, testregistry;
type
TestAugerRate = class(TTestCase)
private
procedure _Test_bad_Z;
procedure _Test_bad_trans;
procedure _Test_invalid_trans;
published
procedure Test_Pb_K_L3M5;
procedure Test_Pb_L3_M4N7;
procedure Test_bad_Z;
procedure Test_bad_trans;
procedure Test_invalid_trans;
end;
type
TestAugerYield = class(TTestCase)
private
procedure _Test_bad_Z;
procedure _Test_bad_shell;
published
procedure Test_Pb_K;
procedure Test_Pb_M3;
procedure Test_bad_Z;
procedure Test_bad_shell;
end;
procedure TestAugerRate.Test_Pb_K_L3M5;
var
rate: double;
begin
rate := AugerRate(82, K_L3M5_AUGER);
AssertEquals(0.004573193387, rate, 1E-6);
end;
procedure TestAugerRate.Test_Pb_L3_M4N7;
var
rate: double;
begin
rate := AugerRate(82, L3_M4N7_AUGER);
AssertEquals(0.0024327572005, rate, 1E-6);
end;
procedure TestAugerRate._Test_bad_Z;
var
rate: double;
begin
rate := AugerRate(-35, L3_M4N7_AUGER);
end;
procedure TestAugerRate._Test_bad_trans;
var
rate: double;
begin
rate := AugerRate(82, M4_M5Q3_AUGER + 1);
end;
procedure TestAugerRate._Test_invalid_trans;
var
rate: double;
begin
rate := AugerRate(62, L3_M4N7_AUGER);
end;
procedure TestAugerRate.Test_bad_Z;
begin
AssertException(EArgumentException, @_Test_bad_Z);
end;
procedure TestAugerRate.Test_bad_trans;
begin
AssertException(EArgumentException, @_Test_bad_trans);
end;
procedure TestAugerRate.Test_invalid_trans;
begin
AssertException(EArgumentException, @_Test_invalid_trans);
end;
procedure TestAugerYield.Test_Pb_K;
var
yield: double;
begin
yield := AugerYield(82, K_SHELL);
AssertEquals(1.0 - FluorYield(82, K_SHELL), yield, 1E-6);
end;
procedure TestAugerYield.Test_Pb_M3;
var
yield: double;
begin
yield := AugerYield(82, M3_SHELL);
AssertEquals(0.1719525, yield, 1E-6);
end;
procedure TestAugerYield._Test_bad_Z;
var
yield: double;
begin
yield := AugerYield(-35, K_SHELL);
end;
procedure TestAugerYield._Test_bad_shell;
var
yield: double;
begin
yield := AugerYield(82, N2_SHELL);
end;
procedure TestAugerYield.Test_bad_Z;
begin
AssertException(EArgumentException, @_Test_bad_Z);
end;
procedure TestAugerYield.Test_bad_shell;
begin
AssertException(EArgumentException, @_Test_bad_shell);
end;
var
App: TestRunner;
begin
RegisterTest(TestAugerRate);
RegisterTest(TestAugerYield);
App := TestRunner.Create(nil);
App.Initialize;
App.Run;
App.Free;
end.
|