BuildStockBatch Analysis Tests
Overview
The test_bsb_analysis.rb file provides a suite of integration tests designed to validate the output of BuildStockBatch runs against expected results. These tests verify that input/output CSVs and timeseries data match the canonical structure and expected values described in a ResStock outputs dictionary.
This test ensures:
Input and output columns conform to the expected schema
Annual metrics group correctly (e.g., cooling loads summing to total usage)
Timeseries results include the appropriate columns and follow aggregation rules
Both “testing_baseline” and “national_baseline” datasets are structurally sound
The file is structured using Minitest::Test and uses helper functions to map expected scenario names, parse dictionaries, and perform numerical validation.
Functions
before_setup
Sets up the test environment by initializing instance variables pointing to testing and national baselines.
_map_scenario_names(list, from, to)
Maps placeholder scenario names in the outputs dictionary to real scenario identifiers.
Used for matching expected outputs with actual CSV fields.
Test Scenarios
test_testing_baseline
Verifies existence of results file (results_up00.csv) in the testing baseline.
Checks for required directories and timeseries files.
Confirms required CSV columns and timeseries structure are present.
test_national_baseline
Performs the same checks as
test_testing_baselinebut on the national baseline directory.
test_testing_inputs
Validates that the input columns in results_up00.csv match the expected input names in the outputs dictionary.
Excludes known ignorable fields like bills_2, bills_3, and server_directory_cleanup.
test_national_inputs
Verifies that national inputs match the expected schema defined in the outputs dictionary.
Fails on both missing or unexpected columns.
test_testing_annual_outputs
Checks for presence of expected output metrics in the testing baseline.
Validates that grouped outputs (defined by “Sums To”) aggregate numerically within tolerance (0.001).
test_national_annual_outputs
Same as
test_testing_annual_outputs, but validates the national dataset.
test_timeseries_resstock_outputs
Validates presence of expected timeseries columns in baseline/timeseries/results_output.csv.
Uses the outputs dictionary to match against expected “Timeseries ResStock Name” values.
Verifies summation logic for grouped outputs and includes unit conversion (e.g., from kWh to kBtu).
test_timeseries_buildstockbatch_outputs
Same as
test_timeseries_resstock_outputsbut validates buildstockbatch.csv.Compares field names using “Timeseries BuildStockBatch Name” mapping.