File: test-auger.pas

package info (click to toggle)
xraylib 4.0.0%2Bdfsg1-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 46,936 kB
  • sloc: ansic: 16,103; f90: 8,746; java: 6,766; python: 1,497; cpp: 1,305; pascal: 1,139; makefile: 809; ruby: 622; php: 594; perl: 573; cs: 193; sh: 125
file content (137 lines) | stat: -rw-r--r-- 2,522 bytes parent folder | download | duplicates (2)
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.