Test Selection Differences

From Q
Jump to navigation Jump to search
var selected_questions = project.report.selectedQuestions();
var selected_raw = project.report.selectedRaw();
var selected_variables = project.report.selectedVariables();

var implicitly_selected_items = project.report.selectedItems().filter(function (item) { return ['Table', 'Plot', 'WordCloud', 'R Output'].indexOf(item.type) > -1; });
var selected_tables = selected_raw.filter(function (item) { return item.type == 'Table';});
var selected_plots = selected_raw.filter(function (item) { return item.type == 'Plot';});
var selected_word_clouds = selected_raw.filter(function (item) { return item.type == 'WordCloud';});
var selected_r_outputs = selected_raw.filter(function (item) { return item.type == 'R Output';});

var implicitly_selected_tables = implicitly_selected_items.filter(function (item) { return item.type == 'Table';});
var implicitly_selected_plots = implicitly_selected_items.filter(function (item) { return item.type == 'Plot';});
var implicitly_selected_word_clouds = implicitly_selected_items.filter(function (item) { return item.type == 'WordCloud';});
var implicitly_selected_r_outputs = implicitly_selected_items.filter(function (item) { return item.type == 'R Output';});


var selected_top_level_pages = selected_raw.filter(function (item) { return item.type == 'ReportGroup'; });


// Collect all subpages of top level selected pages
var selected_pages = [];
var selected_page_guids = [];

function getSubPages(page, known_pages, known_page_guids) {
    let current_guid = page.guid;
    if (known_page_guids.indexOf(current_guid) == -1) {
        known_pages.push(page);
        known_page_guids.push(current_guid);
        let subpages = page.subItems.filter(function (item) { return item.type == 'ReportGroup'; });
        subpages.forEach(function (page) { getSubPages(page, known_pages, known_page_guids); } );
    }
}
selected_top_level_pages.forEach(function (page) { getSubPages(page, selected_pages, selected_page_guids); });


// Sort questions into singles and multis
var single_variable_questions_selected = selected_questions.filter(function (q) { return q.variables.length == 1; });
var multiple_variable_questions_selected = selected_questions.filter(function (q) { return q.variables.length > 1; });


// Identify questions that are selected implicitly within the selected outputs.

// Questions in tables
var questions_in_selected_tables = [];
var questions_in_rows_of_selected_tables = [];
var questions_in_columns_of_selected_tables = [];
selected_tables.forEach(function (table) {
    if (table.primary != null ) {
        questions_in_selected_tables.push(table.primary);
        questions_in_rows_of_selected_tables.push(table.primary);
    }
    if (table.secondary != null && typeof table.secondary != 'string') {
        questions_in_selected_tables.push(table.secondary);
        questions_in_columns_of_selected_tables.push(table.secondary);
    }
});


log("project.report.selectedQuestions(): " + selected_questions.map(q => q.name));
log("project.report.selectedRaw(): " + selected_raw.map(q => q.name));
log("selected table primary questions: " + questions_in_rows_of_selected_tables.map(q => q.name));
log("selected table secondary questions: " + questions_in_columns_of_selected_tables.map(q => q.name));