Skip to content

Loads: bin_statistics test fails due to inconsistent handling of empty bins (NaN vs 0) #171

@simmsa

Description

@simmsa

In the test_bin_statistics test (currently disabled) there is a failure caused by comparisons of 0 to NaN. The underlying JSON data has NaN where bins are empty and the bin_statistics function returns zeros:

function test_bin_statistics(testCase)
assumeFail(testCase, "Temporarily Disabled - Need to ask @hivanov about nan vs zero comparison")
% create array containg wind speeds to use as bin edges
bin_edges = 3:1:25;
relative_file_name = '../../examples/data/loads/loads_data_dict.json';
full_file_name = fullfile(fileparts(mfilename('fullpath')), relative_file_name);
fid = fopen(full_file_name); % Opening the file
raw = fread(fid,inf); % Reading the contents
str = char(raw'); % Transformation
fclose(fid); % Closing the file
data = jsondecode(str); % Using the jsondecode function to parse JSON from string
% Apply function to calculate means
load_means_struct = [data.means.uWind_80m];
load_means_table = struct2table(data.means);
ta = struct2table([data.bin_means]);
st = table2struct(ta,'ToScalar',true);
ta_std = struct2table([data.bin_means_std]);
st_std = table2struct(ta_std,'ToScalar',true);
bin_against = load_means_struct;% load_means_table.uWind_80m;
datast = bin_statistics(load_means_table,bin_against,bin_edges);
assertEqual(testCase,st,datast.averages,'RelTol',0.001)
assertEqual(testCase,st_std,datast.std,'RelTol',0.001)
end

@hivanov-nrel do you have any suggestions on how to fix? Should empty bins return NaN or 0. Do you think this is a bug in the test or in the bin_statistics function?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions