File data_analysis/unittests/entanglement_evaluation_test.m changed (mode: 100644) (index 9612770..3f250ef) |
... |
... |
function ev = entanglement_evaluation_setup_test(shared) |
77 |
77 |
function entanglement_evaluation_properties_test(shared) |
function entanglement_evaluation_properties_test(shared) |
78 |
78 |
ev = entanglement_evaluation_setup_test(shared); |
ev = entanglement_evaluation_setup_test(shared); |
79 |
79 |
assertEqual(ev.samplingrate, shared.samplingrate); |
assertEqual(ev.samplingrate, shared.samplingrate); |
|
80 |
|
|
|
81 |
|
function entanglement_software_version_test(shared) |
|
82 |
|
ev = entanglement_evaluation_setup_test(shared); |
80 |
83 |
swv = ev.software_version; |
swv = ev.software_version; |
81 |
84 |
assert(isequal(class(swv), 'char') && ~isempty(swv)) |
assert(isequal(class(swv), 'char') && ~isempty(swv)) |
82 |
85 |
|
|
|
... |
... |
function entanglement_evaluation_modefunctions_test(shared) |
85 |
88 |
ev.mech_frequencies = [1, 2, 3]; |
ev.mech_frequencies = [1, 2, 3]; |
86 |
89 |
ev.opt_pulse_widths = ones(size(ev.mech_frequencies)); |
ev.opt_pulse_widths = ones(size(ev.mech_frequencies)); |
87 |
90 |
ev.pulse_gammas = logspace(-1,1,2); |
ev.pulse_gammas = logspace(-1,1,2); |
88 |
|
ev.calculateModeVectors; |
|
|
91 |
|
[T,ev] = evalc('ev.calculateModeVectors;'); % supress std out from fct call |
89 |
92 |
|
|
90 |
93 |
%figure; plot(real(ev.readout_modes')) |
%figure; plot(real(ev.readout_modes')) |
91 |
94 |
% check orthonormality |
% check orthonormality |
|
... |
... |
function entanglement_evaluation_run_test(shared) |
124 |
127 |
ev.opt_pulse_widths = 1e2*[1, 1]; |
ev.opt_pulse_widths = 1e2*[1, 1]; |
125 |
128 |
ev.pulse_gammas = logspace(-1,1,10); |
ev.pulse_gammas = logspace(-1,1,10); |
126 |
129 |
|
|
127 |
|
ev.calculateModeVectors; |
|
128 |
|
ev.calculatePulsedQuadratures(1); |
|
|
130 |
|
[T,ev] = evalc('ev.calculateModeVectors;'); % supress std out from fct call |
|
131 |
|
[T,ev] = evalc('ev.calculatePulsedQuadratures(1);'); % supress std out from fct call |
129 |
132 |
assertEqual(size(ev.pulse_Y{1}),... |
assertEqual(size(ev.pulse_Y{1}),... |
130 |
133 |
[ev.pulse_pairs_per_trace, ev.mech_frequencies_no*ev.pulse_gammas_no]); |
[ev.pulse_pairs_per_trace, ev.mech_frequencies_no*ev.pulse_gammas_no]); |
131 |
134 |
|
|
|
... |
... |
function entanglement_evaluation_run_test(shared) |
158 |
161 |
'relative', tolerance); |
'relative', tolerance); |
159 |
162 |
|
|
160 |
163 |
ev.calculatePulsedCMs(1); |
ev.calculatePulsedCMs(1); |
161 |
|
ev.calculatePulsedQuadratures(2); |
|
|
164 |
|
[T,ev] = evalc('ev.calculatePulsedQuadratures(2);'); % supress std out from fct call |
162 |
165 |
ev.calculatePulsedCMs(2); |
ev.calculatePulsedCMs(2); |
163 |
166 |
ev.calibratePulsedCMs; |
ev.calibratePulsedCMs; |
164 |
167 |
% compare to results as of datoolbox-commit e59949293bce61f53d444a02d4646d03bc16a78a |
% compare to results as of datoolbox-commit e59949293bce61f53d444a02d4646d03bc16a78a |
|
... |
... |
function entanglement_evaluation_set_samples_per_pulse_test(shared) |
188 |
191 |
|
|
189 |
192 |
samples_per_pulse = 200; % default for evaluation specifed above |
samples_per_pulse = 200; % default for evaluation specifed above |
190 |
193 |
assertEqual(ev.samples_per_pulse, samples_per_pulse) |
assertEqual(ev.samples_per_pulse, samples_per_pulse) |
191 |
|
ev.calculateModeVectors; |
|
|
194 |
|
[T,ev] = evalc('ev.calculateModeVectors;'); % supress std out from fct call |
192 |
195 |
assertEqual(size(ev.entangling_modes,2), samples_per_pulse) |
assertEqual(size(ev.entangling_modes,2), samples_per_pulse) |
193 |
196 |
|
|
194 |
197 |
% check explicit setting of samples_per_pulse |
% check explicit setting of samples_per_pulse |
195 |
198 |
samples_per_pulse = 50; |
samples_per_pulse = 50; |
196 |
199 |
ev.samples_per_pulse = samples_per_pulse; |
ev.samples_per_pulse = samples_per_pulse; |
197 |
200 |
assertEqual(ev.samples_per_pulse, samples_per_pulse) |
assertEqual(ev.samples_per_pulse, samples_per_pulse) |
198 |
|
ev.calculateModeVectors; |
|
|
201 |
|
[T,ev] = evalc('ev.calculateModeVectors;'); % supress std out from fct call |
199 |
202 |
assertEqual(size(ev.entangling_modes,2), samples_per_pulse) |
assertEqual(size(ev.entangling_modes,2), samples_per_pulse) |
200 |
203 |
|
|
201 |
204 |
function entanglement_evaluation_run_quick_test(shared) |
function entanglement_evaluation_run_quick_test(shared) |
|
... |
... |
function entanglement_evaluation_run_quick_test(shared) |
204 |
207 |
ev.opt_pulse_widths = 1e3*[1, 1]; |
ev.opt_pulse_widths = 1e3*[1, 1]; |
205 |
208 |
ev.pulse_gammas = logspace(-1,1,10); |
ev.pulse_gammas = logspace(-1,1,10); |
206 |
209 |
|
|
207 |
|
ev.calculateModeVectors; |
|
|
210 |
|
[T,ev] = evalc('ev.calculateModeVectors;'); % supress std out from fct call |
208 |
211 |
pulsepairs_no = 100; |
pulsepairs_no = 100; |
209 |
|
ev.calculatePulsedQuadratures(1, 'pulsepairs', pulsepairs_no); |
|
210 |
|
ev.calculatePulsedQuadratures(2, 'pulsepairs', pulsepairs_no); |
|
|
212 |
|
[T,ev] = evalc('ev.calculatePulsedQuadratures(1, ''pulsepairs'', pulsepairs_no);'); |
|
213 |
|
[T,ev] = evalc('ev.calculatePulsedQuadratures(2, ''pulsepairs'', pulsepairs_no);'); |
211 |
214 |
assertEqual(size(ev.pulse_Q{1}),... |
assertEqual(size(ev.pulse_Q{1}),... |
212 |
215 |
[pulsepairs_no, ev.mech_frequencies_no*ev.pulse_gammas_no]); |
[pulsepairs_no, ev.mech_frequencies_no*ev.pulse_gammas_no]); |
213 |
216 |
ev.exportResults; |
ev.exportResults; |
|
... |
... |
function entanglement_evaluation_corrfct_test(shared) |
256 |
259 |
ev = entanglement_evaluation_setup_test(shared); |
ev = entanglement_evaluation_setup_test(shared); |
257 |
260 |
|
|
258 |
261 |
max_lags = 10; |
max_lags = 10; |
259 |
|
ev.blocked_cross_correlation('blocksize', max_lags); |
|
|
262 |
|
[T,ev] = evalc('ev.blocked_cross_correlation(''blocksize'', max_lags);'); % supress std out from fct call |
260 |
263 |
xx = ev.correlation_functions{1}{1,1}; |
xx = ev.correlation_functions{1}{1,1}; |
261 |
264 |
pp = ev.correlation_functions{1}{2,2}; |
pp = ev.correlation_functions{1}{2,2}; |
262 |
265 |
xp = ev.correlation_functions{1}{1,2}; |
xp = ev.correlation_functions{1}{1,2}; |