spec/openstudio/analysis/translator/excel_spec.rb in openstudio-analysis-0.1.14 vs spec/openstudio/analysis/translator/excel_spec.rb in openstudio-analysis-0.1.15
- old
+ new
@@ -1,289 +1,316 @@
require 'spec_helper'
describe OpenStudio::Analysis::Translator::Excel do
- context "no variables defined" do
- let(:path) { "spec/files/no_variables.xlsx" }
-
- before(:each) do
- @excel = OpenStudio::Analysis::Translator::Excel.new(path)
- end
-
- it "should have measure path" do
- expect(@excel.measure_path).to eq("./measures")
- end
-
- it "should have excel data" do
- puts @excel
- expect(@excel).not_to be_nil
- end
-
- it "should process the excel file" do
- expect(@excel.process).to eq(true)
-
- # after processing the measures directory should be what is in the excel file
- expect(@excel.measure_path).to eq(File.expand_path(File.join("spec", "files", "measures")))
- end
-
- it "should not work because no variables defined" do
- #old_path = @excel.measure_path
- #@excel.measure_path = "path/does/not/exist"
- #
- end
-
- it "should not export to a JSON" do
- @excel.process
- expect { @excel.save_analysis }.to raise_error("Argument 'r_value' did not process. Most likely it did not have all parameters defined.")
- end
- end
-
- context "small list of incomplete variables" do
+ #context "no variables defined" do
+ # let(:path) { "spec/files/no_variables.xlsx" }
+ #
+ # before(:each) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new(path)
+ # end
+ #
+ # it "should have measure path" do
+ # expect(@excel.measure_path).to eq("./measures")
+ # end
+ #
+ # it "should have excel data" do
+ # puts @excel
+ # expect(@excel).not_to be_nil
+ # end
+ #
+ # it "should process the excel file" do
+ # expect(@excel.process).to eq(true)
+ #
+ # # after processing the measures directory should be what is in the excel file
+ # expect(@excel.measure_path).to eq(File.expand_path(File.join("spec", "files", "measures")))
+ # end
+ #
+ # it "should not work because no variables defined" do
+ # #old_path = @excel.measure_path
+ # #@excel.measure_path = "path/does/not/exist"
+ # #
+ # end
+ #
+ # it "should not export to a JSON" do
+ # @excel.process
+ # expect { @excel.save_analysis }.to raise_error("Argument 'r_value' did not process. Most likely it did not have all parameters defined.")
+ # end
+ #end
+ #
+ #context "small list of incomplete variables" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/small_list_incomplete.xlsx")
+ # end
+ #
+ # it "should fail to process" do
+ # expect { @excel.process }.to raise_error("Variable adjust_thermostat_setpoints_by_degrees:cooling_adjustment must have a mean")
+ # end
+ #end
+ #
+ #context "small list with with repeated variable names" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/small_list_repeat_vars.xlsx")
+ # end
+ #
+ # it "should fail to process" do
+ # expect { @excel.process }.to raise_error("duplicate variable names found in list [\"Insulation R-value (ft^2*h*R/Btu).\"]")
+ # end
+ #end
+ #
+ #context "small list of variables should not validate" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/small_list_validation_errors.xlsx")
+ # end
+ #
+ # it "should fail to process" do
+ # expect { @excel.process }.to raise_error("Variable min is greater than variable max for adjust_thermostat_setpoints_by_degrees:heating_adjustment")
+ # end
+ #end
+ #
+ #context "small list of variables" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/small_list.xlsx")
+ # @excel.process
+ # end
+ # it "should have a model" do
+ # expect(@excel.models.first).not_to be_nil
+ # expect(@excel.models.first[:name]).to eq("small_seed")
+ # end
+ #
+ # it "should have a weather file" do
+ # expect(@excel.weather_files.first).not_to be_nil
+ # puts @excel.weather_files.first
+ # expect(@excel.weather_files.first.include?("partial_weather.epw")).to eq(true)
+ # end
+ #
+ # it "should have notes and source" do
+ # @excel.variables['data'].each do |measure|
+ # measure['variables'].each do |var|
+ # if var['machine_name'] == 'lighting_power_reduction'
+ # expect(var['distribution']['source']).to eq("some data source")
+ # elsif var['machine_name'] == 'demo_cost_initial_const'
+ # expect(var['notes']).to eq("some note")
+ # end
+ # end
+ # end
+ # end
+ #
+ # it "should write a json" do
+ # @excel.save_analysis
+ # expect(File).to exist("spec/files/export/analysis/small_seed.json")
+ # expect(File).to exist("spec/files/export/analysis/small_seed.zip")
+ #
+ # expect(JSON.parse(File.read("spec/files/export/analysis/small_seed.json"))).not_to be_nil
+ #
+ # end
+ #end
+ #
+ #context "setup version 0.1.9" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/setup_version_2.xlsx")
+ # @excel.process
+ # end
+ #
+ # it "should have a version and machine name" do
+ # expect(@excel.version).to eq("0.1.9")
+ # expect(@excel.machine_name).to eq("example_analysis")
+ # end
+ # it "should have the new settings" do
+ # expect(@excel.settings["server_instance_type"]).to eq("m2.xlarge")
+ # end
+ #
+ # it "should have algorithm setup" do
+ # expect(@excel.algorithm["number_of_samples"]).to eq(100)
+ # expect(@excel.algorithm["number_of_generations"]).to eq(20)
+ # expect(@excel.algorithm["sample_method"]).to eq("all_variables")
+ # expect(@excel.algorithm["number_of_generations"]).to be_a Integer
+ # expect(@excel.algorithm["tolerance"]).to eq(0.115)
+ # expect(@excel.algorithm["tolerance"]).to be_a Float
+ #
+ # end
+ #
+ # it "should create a valid hash" do
+ # h = @excel.create_analysis_hash
+ #
+ # expect(h['analysis']['problem']['analysis_type']).to eq("lhs")
+ # expect(h['analysis']['problem']['algorithm']).not_to be_nil
+ # expect(h['analysis']['problem']['algorithm']['number_of_samples']).to eq(100)
+ # expect(h['analysis']['problem']['algorithm']['sample_method']).to eq("all_variables")
+ # end
+ #end
+ #
+ #context "proxy setup" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/proxy.xlsx")
+ # @excel.process
+ # end
+ #
+ # it "should have a proxy setting" do
+ # expect(@excel.settings["proxy_host"]).to eq("192.168.0.1")
+ # expect(@excel.settings["proxy_port"]).to eq(8080)
+ # expect(@excel.settings["proxy_username"]).to be_nil
+ #
+ # end
+ #end
+ #
+ #context "proxy setup with user" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/proxy_user.xlsx")
+ # @excel.process
+ # end
+ #
+ # it "should have a user" do
+ # expect(@excel.settings["proxy_host"]).to eq("192.168.0.1")
+ # expect(@excel.settings["proxy_port"]).to eq(8080)
+ # expect(@excel.settings["proxy_username"]).to eq("a_user")
+ # end
+ #end
+ #
+ #context "discrete variables" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/discrete_variables.xlsx")
+ # @excel.process
+ # end
+ #
+ # it "should have parsed the spreadsheet" do
+ # @excel.variables['data'].each do |measure|
+ # measure['variables'].each do |var|
+ #
+ # end
+ # end
+ # end
+ #
+ # it "should save the file" do
+ # @excel.save_analysis
+ # end
+ #end
+ #
+ #context "discrete with dynamic columns" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/discrete_dynamic_columns.xlsx")
+ # @excel.process
+ # end
+ #
+ # it "should have parsed the spreadsheet" do
+ # @excel.variables['data'].each do |measure|
+ # measure['variables'].each do |var|
+ # puts var.inspect
+ # end
+ # end
+ # end
+ #
+ # it "should save the file" do
+ # @excel.save_analysis
+ # end
+ #end
+ #
+ #context "setup output variables" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/outputvars.xlsx")
+ # @excel.process
+ # end
+ #
+ # it "should have a model" do
+ # expect(@excel.models.first).not_to be_nil
+ # expect(@excel.models.first[:name]).to eq("output_vars")
+ # end
+ #
+ # it "should have a weather file" do
+ # expect(@excel.weather_files.first).not_to be_nil
+ # puts @excel.weather_files.first
+ # expect(@excel.weather_files.first.include?("partial_weather.epw")).to eq(true)
+ # end
+ #
+ # it "should have notes and source" do
+ # @excel.variables['data'].each do |measure|
+ # measure['variables'].each do |var|
+ # if var['machine_name'] == 'lighting_power_reduction'
+ # expect(var['distribution']['source']).to eq("some data source")
+ # elsif var['machine_name'] == 'demo_cost_initial_const'
+ # expect(var['notes']).to eq("some note")
+ # end
+ # end
+ # end
+ # end
+ #
+ # it "should have typed booleans" do
+ # expect(@excel.run_setup['use_server_as_worker']).to eq(true)
+ # expect(@excel.run_setup['allow_multiple_jobs']).to eq(true)
+ # end
+ #
+ # it "should have algorithm setup" do
+ # expect(@excel.algorithm["number_of_samples"]).to eq(100)
+ # expect(@excel.algorithm["number_of_generations"]).to eq(20)
+ # expect(@excel.algorithm["sample_method"]).to eq("all_variables")
+ # expect(@excel.algorithm["number_of_generations"]).to be_a Integer
+ # #expect(@excel.algorithm["tolerance"]).to eq(0.115)
+ # #expect(@excel.algorithm["tolerance"]).to be_a Float
+ #
+ # end
+ #
+ # it "should create a valid hash" do
+ # h = @excel.create_analysis_hash
+ #
+ # expect(h['analysis']['problem']['analysis_type']).to eq("nsga")
+ # expect(h['analysis']['problem']['algorithm']).not_to be_nil
+ # expect(h['analysis']['problem']['algorithm']['number_of_samples']).to eq(100)
+ # expect(h['analysis']['problem']['algorithm']['sample_method']).to eq("all_variables")
+ # end
+ #
+ #
+ # it "should write a json" do
+ # @excel.save_analysis
+ # expect(File).to exist("spec/files/export/analysis/output_vars.json")
+ # expect(File).to exist("spec/files/export/analysis/output_vars.zip")
+ #
+ # expect(JSON.parse(File.read("spec/files/export/analysis/output_vars.json"))).not_to be_nil
+ #
+ # end
+ #end
+ #
+ #context "version 0.1.10" do
+ # before(:all) do
+ # @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/template_input_0.1.10.xlsx")
+ # end
+ #
+ # it "should process" do
+ # expect(@excel.process).to eq(true)
+ # end
+ #
+ # it "should have new setting variables" do
+ # puts @excel.settings.inspect
+ # expect(@excel.settings["user_id"]).to eq('new_user')
+ # expect(@excel.settings["openstudio_server_version"]).to eq('1.3.2')
+ # expect(@excel.cluster_name).to eq('analysis_cluster')
+ # puts @excel.run_setup.inspect
+ # expect(@excel.run_setup["analysis_name"]).to eq('LHS Example Project')
+ # end
+ #end
+
+ context "version 0.2.0" do
before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/small_list_incomplete.xlsx")
+ @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/template_0_2_0.xlsx")
end
-
- it "should fail to process" do
- expect { @excel.process }.to raise_error("Variable adjust_thermostat_setpoints_by_degrees:cooling_adjustment must have a mean")
- end
- end
-
- context "small list with with repeated variable names" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/small_list_repeat_vars.xlsx")
- end
-
- it "should fail to process" do
- expect { @excel.process }.to raise_error("duplicate variable names found in list [\"Insulation R-value (ft^2*h*R/Btu).\"]")
- end
- end
-
- context "small list of variables should not validate" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/small_list_validation_errors.xlsx")
- end
-
- it "should fail to process" do
- expect { @excel.process }.to raise_error("Variable min is greater than variable max for adjust_thermostat_setpoints_by_degrees:heating_adjustment")
- end
- end
-
- context "small list of variables" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/small_list.xlsx")
- @excel.process
- end
- it "should have a model" do
- expect(@excel.models.first).not_to be_nil
- expect(@excel.models.first[:name]).to eq("small_seed")
- end
-
- it "should have a weather file" do
- expect(@excel.weather_files.first).not_to be_nil
- puts @excel.weather_files.first
- expect(@excel.weather_files.first.include?("partial_weather.epw")).to eq(true)
- end
-
- it "should have notes and source" do
- @excel.variables['data'].each do |measure|
- measure['variables'].each do |var|
- if var['machine_name'] == 'lighting_power_reduction'
- expect(var['distribution']['source']).to eq("some data source")
- elsif var['machine_name'] == 'demo_cost_initial_const'
- expect(var['notes']).to eq("some note")
- end
- end
- end
- end
-
- it "should write a json" do
- @excel.save_analysis
- expect(File).to exist("spec/files/export/analysis/small_seed.json")
- expect(File).to exist("spec/files/export/analysis/small_seed.zip")
-
- expect(JSON.parse(File.read("spec/files/export/analysis/small_seed.json"))).not_to be_nil
-
- end
- end
-
- context "setup version 0.1.9" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/setup_version_2.xlsx")
- @excel.process
- end
-
- it "should have a version and machine name" do
- expect(@excel.version).to eq("0.1.9")
- expect(@excel.machine_name).to eq("example_analysis")
- end
- it "should have the new settings" do
- expect(@excel.settings["server_instance_type"]).to eq("m2.xlarge")
- end
-
- it "should have algorithm setup" do
- expect(@excel.algorithm["number_of_samples"]).to eq(100)
- expect(@excel.algorithm["number_of_generations"]).to eq(20)
- expect(@excel.algorithm["sample_method"]).to eq("all_variables")
- expect(@excel.algorithm["number_of_generations"]).to be_a Integer
- expect(@excel.algorithm["tolerance"]).to eq(0.115)
- expect(@excel.algorithm["tolerance"]).to be_a Float
-
- end
-
- it "should create a valid hash" do
- h = @excel.create_analysis_hash
-
- expect(h['analysis']['problem']['analysis_type']).to eq("lhs")
- expect(h['analysis']['problem']['algorithm']).not_to be_nil
- expect(h['analysis']['problem']['algorithm']['number_of_samples']).to eq(100)
- expect(h['analysis']['problem']['algorithm']['sample_method']).to eq("all_variables")
- end
- end
-
- context "proxy setup" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/proxy.xlsx")
- @excel.process
- end
-
- it "should have a proxy setting" do
- expect(@excel.settings["proxy_host"]).to eq("192.168.0.1")
- expect(@excel.settings["proxy_port"]).to eq(8080)
- expect(@excel.settings["proxy_username"]).to be_nil
-
- end
- end
-
- context "proxy setup with user" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/proxy_user.xlsx")
- @excel.process
- end
-
- it "should have a user" do
- expect(@excel.settings["proxy_host"]).to eq("192.168.0.1")
- expect(@excel.settings["proxy_port"]).to eq(8080)
- expect(@excel.settings["proxy_username"]).to eq("a_user")
- end
- end
-
- context "discrete variables" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/discrete_variables.xlsx")
- @excel.process
- end
-
- it "should have parsed the spreadsheet" do
- @excel.variables['data'].each do |measure|
- measure['variables'].each do |var|
-
- end
- end
- end
-
- it "should save the file" do
- @excel.save_analysis
- end
- end
-
- context "discrete with dynamic columns" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/discrete_dynamic_columns.xlsx")
- @excel.process
- end
-
- it "should have parsed the spreadsheet" do
- @excel.variables['data'].each do |measure|
- measure['variables'].each do |var|
- puts var.inspect
- end
- end
- end
-
- it "should save the file" do
- @excel.save_analysis
- end
- end
-
- context "setup output variables" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/outputvars.xlsx")
- @excel.process
- end
-
- it "should have a model" do
- expect(@excel.models.first).not_to be_nil
- expect(@excel.models.first[:name]).to eq("output_vars")
- end
-
- it "should have a weather file" do
- expect(@excel.weather_files.first).not_to be_nil
- puts @excel.weather_files.first
- expect(@excel.weather_files.first.include?("partial_weather.epw")).to eq(true)
- end
-
- it "should have notes and source" do
- @excel.variables['data'].each do |measure|
- measure['variables'].each do |var|
- if var['machine_name'] == 'lighting_power_reduction'
- expect(var['distribution']['source']).to eq("some data source")
- elsif var['machine_name'] == 'demo_cost_initial_const'
- expect(var['notes']).to eq("some note")
- end
- end
- end
- end
-
- it "should have typed booleans" do
- expect(@excel.run_setup['use_server_as_worker']).to eq(true)
- expect(@excel.run_setup['allow_multiple_jobs']).to eq(true)
- end
-
- it "should have algorithm setup" do
- expect(@excel.algorithm["number_of_samples"]).to eq(100)
- expect(@excel.algorithm["number_of_generations"]).to eq(20)
- expect(@excel.algorithm["sample_method"]).to eq("all_variables")
- expect(@excel.algorithm["number_of_generations"]).to be_a Integer
- #expect(@excel.algorithm["tolerance"]).to eq(0.115)
- #expect(@excel.algorithm["tolerance"]).to be_a Float
-
- end
-
- it "should create a valid hash" do
- h = @excel.create_analysis_hash
-
- expect(h['analysis']['problem']['analysis_type']).to eq("nsga")
- expect(h['analysis']['problem']['algorithm']).not_to be_nil
- expect(h['analysis']['problem']['algorithm']['number_of_samples']).to eq(100)
- expect(h['analysis']['problem']['algorithm']['sample_method']).to eq("all_variables")
- end
-
-
- it "should write a json" do
- @excel.save_analysis
- expect(File).to exist("spec/files/export/analysis/output_vars.json")
- expect(File).to exist("spec/files/export/analysis/output_vars.zip")
-
- expect(JSON.parse(File.read("spec/files/export/analysis/output_vars.json"))).not_to be_nil
-
- end
- end
-
- context "version 0.1.10" do
- before(:all) do
- @excel = OpenStudio::Analysis::Translator::Excel.new("spec/files/template_input_0.1.10.xlsx")
- end
-
+
it "should process" do
expect(@excel.process).to eq(true)
end
-
+
it "should have new setting variables" do
puts @excel.settings.inspect
expect(@excel.settings["user_id"]).to eq('new_user')
expect(@excel.settings["openstudio_server_version"]).to eq('1.3.2')
- expect(@excel.cluster_name).to eq('analysis_cluster')
+ expect(@excel.cluster_name).to eq('analysis_cluster_name')
puts @excel.run_setup.inspect
- expect(@excel.run_setup["analysis_name"]).to eq('LHS Example Project')
+ expect(@excel.run_setup["analysis_name"]).to eq('Name goes here')
+ end
+
+ it "should have the new measure directory column" do
+ expect(@excel.variables['data'][1]['measure_file_name_directory']).to eq('ReduceLightingLoadsByPercentage')
+ end
+
+ it "should write a json" do
+ @excel.save_analysis
end
end
end