File: test_signals.c

package info (click to toggle)
bart 0.9.00-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,040 kB
  • sloc: ansic: 116,116; python: 1,329; sh: 726; makefile: 639; javascript: 589; cpp: 106
file content (75 lines) | stat: -rw-r--r-- 1,304 bytes parent folder | download | duplicates (3)
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

#include <stdio.h>
#include <complex.h>

#include "misc/mri.h"

#include "num/multind.h"
#include "num/flpmath.h"

#include "simu/signals.h"

#include "utest.h"

static bool test_looklocker(void)
{
	struct signal_model data = signal_looklocker_defaults;

	float echos = 200;

	long dims[DIMS] = { [0 ... DIMS - 1] = 1 };
	dims[TE_DIM] = echos;

	complex float* signal = md_alloc(DIMS, dims, CFL_SIZE);

	looklocker_model(&data, echos, signal);

	if (10E-5 < (cabsf(signal[0]) - 1.))
		return 0;

	if (10E-5 < (cabsf(signal[100]) - 0.027913))
		return 0;

	if (10E-5 < (cabsf(signal[199]) - 0.213577))
		return 0;

	md_free(signal);

	return 1;
}

UT_REGISTER_TEST(test_looklocker);



static bool test_IR_bSSFP(void)
{
	struct signal_model data = signal_IR_bSSFP_defaults;

	float echos = 200;

	long dims[DIMS] = { [0 ... DIMS - 1] = 1 };
	dims[TE_DIM] = echos;

	complex float* signal = md_alloc(DIMS, dims, CFL_SIZE);

	IR_bSSFP_model(&data, echos, signal);

	if (10E-5 < (cabsf(signal[0]) - 0.382683))
		return 0;

	if (10E-5 < (cabsf(signal[100]) - 0.036060))
		return 0;

	if (10E-5 < (cabsf(signal[199]) - 0.085378))
		return 0;

// 	for (unsigned int i = 0; i < echos; i++)
// 		printf("signal[%d]: %f\n", i, cabsf(signal[i]));

	md_free(signal);

	return 1;
}

UT_REGISTER_TEST(test_IR_bSSFP);