File: test-comptonprofiles.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 (133 lines) | stat: -rw-r--r-- 3,551 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
program test_comptonprofiles;

{$APPTYPE CONSOLE}
{$mode objfpc}
{$h+}

uses xraylib, xrltest, Classes, SysUtils, fpcunit, testreport, testregistry;

type
	TestComptonProfiles = class(TTestCase)
	private
		procedure _Test_bad_Z_0;
		procedure _Test_bad_Z_103;
		procedure _Test_bad_pz;
		procedure _Test_bad_Z_0_partial;
		procedure _Test_bad_Z_103_partial;
		procedure _Test_bad_pz_partial;
		procedure _Test_bad_shell_low_partial;
		procedure _Test_bad_shell_high_partial;
	published
		procedure Test_pz_0;
		procedure Test_pz_100;
		procedure Test_pz_50;
		procedure Test_bad_input;
	end;


procedure TestComptonProfiles.Test_pz_0;
var
	profile, profile1, profile2: double;
begin
	profile := ComptonProfile(26, 0.0);
	AssertEquals(7.060, profile, 1E-6);
	profile := ComptonProfile_Partial(26, N1_SHELL, 0.0);
	AssertEquals(1.550, profile, 1E-6);
	profile1 := ComptonProfile_Partial(26, L2_SHELL, 0.0);
	profile2 := ComptonProfile_Partial(26, L3_SHELL, 0.0);
	AssertEquals(profile1, profile2, 1E-6);
end;

procedure TestComptonProfiles.Test_pz_100;
var
	profile, profile1, profile2: double;
begin
	profile := ComptonProfile(26, 100.0);
	AssertEquals(1.800E-5, profile, 1E-8);
	profile := ComptonProfile_Partial(26, N1_SHELL, 100.0);
	AssertEquals(5.100E-09, profile, 1E-12);
	profile1 := ComptonProfile_Partial(26, L2_SHELL, 100.0);
	profile2 := ComptonProfile_Partial(26, L3_SHELL, 100.0);
	AssertEquals(profile1, profile2, 1E-10);
	AssertEquals(profile1, 1.100E-8, 1E-10);
end;

procedure TestComptonProfiles.Test_pz_50;
var
	profile, profile1, profile2: double;
begin
	profile := ComptonProfile(26, 50.0);
	AssertEquals(0.0006843950273082384, profile, 1E-8);
	profile := ComptonProfile_Partial(26, N1_SHELL, 50.0);
	AssertEquals(2.4322755767709126e-07, profile, 1E-10);
	profile1 := ComptonProfile_Partial(26, L2_SHELL, 50.0);
	profile2 := ComptonProfile_Partial(26, L3_SHELL, 50.0);
	AssertEquals(profile1, profile2, 1E-10);
	AssertEquals(profile1, 2.026953933016568e-06, 1E-10);
end;

procedure TestComptonProfiles.Test_bad_input;
begin
	AssertException(EArgumentException, @_Test_bad_Z_0);
	ComptonProfile(102, 0.0);
	AssertException(EArgumentException, @_Test_bad_Z_103);
	AssertException(EArgumentException, @_Test_bad_pz);

	AssertException(EArgumentException, @_Test_bad_Z_0_partial);
	ComptonProfile_Partial(102, K_SHELL, 0.0);
	AssertException(EArgumentException, @_Test_bad_Z_103_partial);
	AssertException(EArgumentException, @_Test_bad_pz_partial);
	AssertException(EArgumentException, @_Test_bad_shell_low_partial);
	AssertException(EArgumentException, @_Test_bad_shell_high_partial);
end;

procedure TestComptonProfiles._Test_bad_Z_0;
begin
	ComptonProfile(0, 0.0);
end;

procedure TestComptonProfiles._Test_bad_Z_103;
begin
	ComptonProfile(103, 0.0);
end;

procedure TestComptonProfiles._Test_bad_pz;
begin
	ComptonProfile(26, -1.0);
end;

procedure TestComptonProfiles._Test_bad_Z_0_partial;
begin
	ComptonProfile_Partial(0, K_SHELL, 0.0);
end;

procedure TestComptonProfiles._Test_bad_Z_103_partial;
begin
	ComptonProfile_Partial(103, K_SHELL, 0.0);
end;

procedure TestComptonProfiles._Test_bad_pz_partial;
begin
	ComptonProfile_Partial(26, K_SHELL, -1.0);
end;

procedure TestComptonProfiles._Test_bad_shell_low_partial;
begin
	ComptonProfile_Partial(26, -1, 0.0);
end;

procedure TestComptonProfiles._Test_bad_shell_high_partial;
begin
	ComptonProfile_Partial(26, N2_SHELL, 0.0);
end;

var
	App: TestRunner;
begin
	RegisterTest(TestComptonProfiles);
	App := TestRunner.Create(nil);
	App.Initialize;
	App.Run;
	App.Free;
end.