Esempio n. 1
0
def test_get_environmental_interface(theme_menu, core, tidal_project,
                                     var_tree):

    theme_name = "Environmental Impact Assessment (Experimental)"

    project_menu = ProjectMenu()
    project = deepcopy(tidal_project)
    theme_menu.activate(core, project, theme_name)
    project_menu.initiate_dataflow(core, project)

    environmental_branch = var_tree.get_branch(core, project, theme_name)
    environmental_branch.read_test_data(
        core, project, os.path.join(dir_path, "inputs_environmental.pkl"))
    environmental_branch.read_auto(core, project)

    can_execute = theme_menu.is_executable(core, project, theme_name)

    if not can_execute:

        inputs = environmental_branch.get_input_status(core, project)
        pprint(inputs)
        assert can_execute

    connector = _get_connector(project, "themes")
    interface = connector.get_interface(core, project, theme_name)

    #
    assert interface.data.layout is not None
Esempio n. 2
0
def test_get_electrical_interface(module_menu, core, tidal_project, var_tree):

    mod_name = "Electrical Sub-Systems"
    #    project_menu = ProjectMenu()

    project_menu = ProjectMenu()
    project = deepcopy(tidal_project)
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)

    electrical_branch = var_tree.get_branch(core, project, mod_name)
    electrical_branch.read_test_data(core, project,
                                     os.path.join(dir_path, "inputs_wp3.pkl"))
    electrical_branch.read_auto(core, project)

    can_execute = module_menu.is_executable(core, project, mod_name)

    if not can_execute:

        inputs = electrical_branch.get_input_status(core, project)
        pprint(inputs)
        assert can_execute

    connector = _get_connector(project, "modules")
    interface = connector.get_interface(core, project, mod_name)

    assert interface.data.voltage is not None
Esempio n. 3
0
def test_get_economics_interface(theme_menu, core, tidal_project, var_tree):

    theme_name = "Economics"

    project_menu = ProjectMenu()
    project = deepcopy(tidal_project)
    theme_menu.activate(core, project, theme_name)
    project_menu.initiate_dataflow(core, project)

    economics_branch = var_tree.get_branch(core, project, theme_name)
    economics_branch.read_test_data(
        core, project, os.path.join(dir_path, "inputs_economics.pkl"))
    economics_branch.read_auto(core, project)

    can_execute = theme_menu.is_executable(core, project, theme_name)

    if not can_execute:

        inputs = economics_branch.get_input_status(core, project)
        pprint(inputs)
        assert can_execute

    connector = _get_connector(project, "themes")
    interface = connector.get_interface(core, project, theme_name)

    assert interface.data.electrical_bom is not None
Esempio n. 4
0
def test_ArrayLeasePlot_available(core, project, tree):

    project = deepcopy(project)
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()

    mod_name = "Mock Module"
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)

    mod_branch = tree.get_branch(core, project, mod_name)
    mod_branch.read_test_data(core,
                              project,
                              os.path.join(dir_path, "inputs_wp3.pkl"))

    # Force addition of lease area
    lease_area = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
    core.add_datastate(project,
                       identifiers=["site.lease_boundary"],
                       values=[lease_area])


    layout = mod_branch.get_input_variable(core, project, "project.layout")
    result = layout.get_available_plots(core, project)

    assert "Lease Area Array Layout" in result
def test_WaveOccurrencePlot(core, project, tree):

    project = deepcopy(project)
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()

    mod_name = "Mock Module"
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)

    # Force addition of occurance matrix
    occurrence_matrix_coords = [[0., 1],
                                [0., 1],
                                [0., 1]]
    matrix_xgrid = {"values": np.ones([2, 2, 2]),
                    "coords": occurrence_matrix_coords}

    core.add_datastate(project,
                       identifiers=["farm.wave_occurrence"],
                       values=[matrix_xgrid])

    mod_branch = tree.get_branch(core, project, mod_name)
    wave_occurrence = mod_branch.get_output_variable(core,
                                                     project,
                                                     "farm.wave_occurrence")
    wave_occurrence.plot(core, project, "Wave Resource Occurrence Matrix")

    assert len(plt.get_fignums()) == 1

    plt.close("all")
def test_PowerMatrixPlot(core, project, tree):

    project = deepcopy(project)
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()

    mod_name = "Mock Module"
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)

    # Force addition of power matrix
    power_matrix_coords = [[0., 1],
                           [0., 1],
                           [0., 1]]
    matrix_xgrid = {"values": np.ones([2, 2, 2]),
                    "coords": power_matrix_coords}

    core.add_datastate(project,
                       identifiers=["device.wave_power_matrix"],
                       values=[matrix_xgrid])

    mod_branch = tree.get_branch(core, project, mod_name)
    power_matrix = mod_branch.get_output_variable(core,
                                                  project,
                                                  'device.wave_power_matrix')
    power_matrix.plot(core, project, "Single Wave Device Power Matrix")

    assert len(plt.get_fignums()) == 1

    plt.close("all")
Esempio n. 7
0
def test_DesignBoundaryPlot(core, project, tree):

    project = deepcopy(project)

    module_menu = ModuleMenu()
    module_menu.activate(core, project, "Mock Module")

    project_menu = ProjectMenu()
    project_menu.initiate_dataflow(core, project)

    installation_branch = tree.get_branch(core, project, "Mock Module")
    installation_branch.read_test_data(
        core, project, os.path.join(dir_path, "inputs_boundary.pkl"))
    installation_branch.read_auto(core, project)

    # Add nogo area
    nogo_area = {"test": Polygon([(0, 0), (10, 0), (10, 10), (0, 10)])}
    core.add_datastate(project,
                       identifiers=["farm.nogo_areas", "corridor.nogo_areas"],
                       values=[nogo_area, nogo_area])

    lease_entry = installation_branch.get_input_variable(
        core, project, "project.lease_area_entry_point")
    lease_entry.plot(core, project, "Design Boundaries")

    assert len(plt.get_fignums()) == 1

    plt.close("all")
Esempio n. 8
0
def test_get_reliability_interface(theme_menu, core, tidal_project, var_tree):

    theme_name = "Reliability"
    #    project_menu = ProjectMenu()

    project_menu = ProjectMenu()
    project = deepcopy(tidal_project)
    theme_menu.activate(core, project, theme_name)
    project_menu.initiate_dataflow(core, project)

    reliability_branch = var_tree.get_branch(core, project, theme_name)
    reliability_branch.read_test_data(
        core, project, os.path.join(dir_path, "inputs_reliability.pkl"))
    reliability_branch.read_auto(core, project)

    can_execute = theme_menu.is_executable(core, project, theme_name)

    if not can_execute:

        inputs = reliability_branch.get_input_status(core, project)
        pprint(inputs)
        assert can_execute

    connector = _get_connector(project, "themes")
    interface = connector.get_interface(core, project, theme_name)

    assert interface.data.mission_time is not None
Esempio n. 9
0
def test_auto_file_read(core, project, tree):
    
    mod_name = "Mock Module"
    var_id = "device.turbine_performance"
    
    project = deepcopy(project) 
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()
    
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)

    hydro_branch = tree.get_branch(core,
                                   project,
                                   mod_name)
    new_var = hydro_branch.get_input_variable(core, project, var_id)

    new_var.read_file(core,
                      project,
                      os.path.join(data_dir,
                                   "tidal_performance.csv"))
    
    inputs = hydro_branch.get_input_status(core, project)
    
    assert inputs[var_id] == 'satisfied'
Esempio n. 10
0
def test_get_installation_interface(module_menu, core, tidal_project,
                                    var_tree):
    
    mod_name = "Installation"
    
    project_menu = ProjectMenu()
    project = deepcopy(tidal_project) 
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)
    
    installation_branch = var_tree.get_branch(core, project, mod_name)
    installation_branch.read_test_data(core,
                                     project,
                                     os.path.join(dir_path,
                                                  "inputs_wp5.pkl"))
    installation_branch.read_auto(core, project)
    
    can_execute = module_menu.is_executable(core, project,  mod_name)
    
    if not can_execute:
        
        inputs = installation_branch.get_input_status(core, project)
        pprint(inputs)
        assert can_execute
        
    connector = _get_connector(project, "modules")
    interface = connector.get_interface(core,
                                        project,
                                        mod_name)
                                        
    assert interface.data.site is not None
def test_get_maintenance_interface(module_menu, core, wave_project, var_tree):
    
    mod_name = 'Operations and Maintenance'
    
    project_menu = ProjectMenu()
    project = deepcopy(wave_project)
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)
    
    operations_branch = var_tree.get_branch(core, project, mod_name)
    operations_branch.read_test_data(core,
                                     project,
                                     os.path.join(dir_path,
                                                  "inputs_wp6.pkl"))
    operations_branch.read_auto(core, project)
    
    can_execute = module_menu.is_executable(core, project,  mod_name)
    
    if not can_execute:
        
        inputs = operations_branch.get_input_status(core, project)
        pprint(inputs)
        assert can_execute
        
    connector = _get_connector(project, "modules")
    interface = connector.get_interface(core,
                                        project,
                                        mod_name)
                                        
    assert interface.data.system_type is not None
Esempio n. 12
0
def test_dump_datastate_archive(core, project, var_tree, tmpdir):
    
    project = deepcopy(project) 

    project_menu = ProjectMenu()
    module_menu = ModuleMenu()
    theme_menu = ThemeMenu()

    module_menu.activate(core, project, "Mock Module")
    theme_menu.activate(core, project,  "Mock Theme")
    
    project_menu.initiate_dataflow(core, project)
                                   
    hydro_branch = var_tree.get_branch(core, project, "Mock Module")
    hydro_branch.read_test_data(core,
                                project,
                                os.path.join(dir_path,
                                             "inputs_wp2_tidal.pkl"))
                                             
    eco_branch = var_tree.get_branch(core, project, "Mock Theme")
    eco_branch.read_test_data(core,
                              project,
                              os.path.join(dir_path,
                                           "inputs_economics.pkl"))

    datastate_file_name = "my_datastate.dts"
    datastate_file_path = os.path.join(str(tmpdir), datastate_file_name)
    
    core.dump_datastate(project, datastate_file_path)
    
    assert os.path.isfile(datastate_file_path)
Esempio n. 13
0
def test_execute_output_level(core, var_tree):
    
    project_title = "Test"  
    
    project_menu = ProjectMenu()
    
    new_project = project_menu.new_project(core, project_title)
    
    options_branch = var_tree.get_branch(core,
                                         new_project,
                                         "System Type Selection")
    device_type = options_branch.get_input_variable(core,
                                                    new_project,
                                                    "device.system_type")
    device_type.set_raw_interface(core, "Tidal Fixed")
    device_type.read(core, new_project)
    
    project_menu._execute(core,
                          new_project,
                          "System Type Selection")
    
    current_sim = new_project.get_simulation()
    output_level = "System Type Selection {}".format(core._markers["output"])
    
    assert current_sim._execution_level == output_level.lower()
Esempio n. 14
0
def test_auto_write_file(core, project, tree):
    
    mod_name = "Mock Module"
    var_id = "device.turbine_performance"
    
    project = deepcopy(project) 
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()
    
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)

    hydro_branch = tree.get_branch(core,
                                   project,
                                   mod_name)
    new_var = hydro_branch.get_input_variable(core, project, var_id)
    
    new_var.set_file_interface(core, os.path.join(data_dir,
                                                  "tidal_performance.csv"))
    new_var.read(core, project)
    
    output_path = os.path.join(data_dir,
                               "tidal_performance_copy.csv")
                               
    if os.path.exists(output_path): os.remove(output_path)
    
    new_var.write_file(core,
                       project,
                       output_path)
    
    assert os.path.exists(output_path)
Esempio n. 15
0
def test_ArrayLeasePlotNumbers(core, project, tree):

    project = deepcopy(project)
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()

    mod_name = "Mock Module"
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)

    mod_branch = tree.get_branch(core, project, mod_name)
    mod_branch.read_test_data(core,
                              project,
                              os.path.join(dir_path, "inputs_wp3.pkl"))

    # Force addition of lease area
    lease_area = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
    core.add_datastate(project,
                       identifiers=["site.lease_boundary"],
                       values=[lease_area])

    layout = mod_branch.get_input_variable(core, project, "project.layout")
    layout.plot(core, project, "Lease Area Array Layout (With Device Numbers)")

    assert len(plt.get_fignums()) == 1

    plt.close("all")
Esempio n. 16
0
def test_auto_plot(core, project, tree):
    
    project = deepcopy(project) 
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()
    
    mod_name = "Mock Module"
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)

    hydro_branch = tree.get_branch(core,
                                   project,
                                   mod_name)
    hydro_branch.read_test_data(core,
                                project,
                                os.path.join(this_dir,
                                             "inputs_wp2_tidal.pkl"))
                                                       
    cp_curve = hydro_branch.get_input_variable(core,
                                               project,
                                               "device.turbine_performance")
    cp_curve.plot(core, project)
    
    assert len(plt.get_fignums()) == 1
    
    plt.close("all")
def test_get_tidal_interface(module_menu, core, tidal_project, var_tree):
        
    mod_name = "Hydrodynamics"
#    project_menu = ProjectMenu()
    
    project_menu = ProjectMenu()
    project = deepcopy(tidal_project)
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)
    
    hydro_branch = var_tree.get_branch(core, project, mod_name)
    hydro_branch.read_test_data(core,
                                project,
                                os.path.join(dir_path,
                                             "inputs_wp2_tidal.pkl"))
                                                       
    can_execute = module_menu.is_executable(core, project,  mod_name)
    
    if not can_execute:
        
        inputs = hydro_branch.get_input_status(core, project)
        pprint(inputs)
        assert can_execute
        
    connector = _get_connector(project, "modules")
    interface = connector.get_interface(core,
                                        project,
                                        mod_name)
                                        
    assert interface.data.perf_curves is not None
Esempio n. 18
0
def project(core, tree):
    '''Share a Project object'''

    project_title = "Test"

    project_menu = ProjectMenu()

    new_project = project_menu.new_project(core, project_title)

    options_branch = tree.get_branch(core, new_project,
                                     "System Type Selection")
    device_type = options_branch.get_input_variable(core, new_project,
                                                    "device.system_type")
    device_type.set_raw_interface(core, "Tidal Fixed")
    device_type.read(core, new_project)

    project_menu.initiate_pipeline(core, new_project)

    project_menu.activate(core, new_project, "Site Boundary Selection")

    boundaries_branch = tree.get_branch(core, new_project,
                                        "Site Boundary Selection")
    boundaries_branch.read_test_data(
        core, new_project, os.path.join(dir_path, "inputs_boundary.pkl"))
    project_menu._execute(core,
                          new_project,
                          "Site Boundary Selection",
                          set_output_level=False)

    return new_project
Esempio n. 19
0
def test_ArrayCablesPlot(core, project, tree):
    
    project = deepcopy(project)
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()

    mod_name = "Mock Module"
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)
    
    # Need to provide these inputs:
    #   "site.lease_boundary",
    #   "corridor.landing_point",
    #   "project.layout",
    #   "project.cable_routes",
    #   "project.substation_layout"
    
    lease_area = Polygon([(0, 0), (20, 0), (20, 50), (0, 50)])
    landing_point = [10, 0]
    layout = {"device001": (10, 40)}
    substation = {"array": [10, 20]}
    
    cable_dict = {"Marker": [0, 0, 0, 1, 1, 1],
                  "UTM X": [10, 10, 10, 10, 10, 10],
                  "UTM Y": [40, 30, 20, 20, 10, 0],
                  "Key Identifier": [None, None, None, None, None, None],
                  "Depth": [None, None, None, None, None, None],
                  "Burial Depth": [None, None, None, None, None, None],
                  "Sediment": [None, None, None, None, None, None],
                  "Split Pipe": [None, None, None, None, None, None]}
    cable_df = pd.DataFrame(cable_dict)
    
    core.add_datastate(project,
                       identifiers=["site.lease_boundary",
                                    "corridor.landing_point",
                                    "project.layout",
                                    "project.substation_layout",
                                    "project.cable_routes"],
                       values=[lease_area,
                               landing_point,
                               layout,
                               substation,
                               cable_df])

    mod_branch = tree.get_branch(core, project, mod_name)
    cables = mod_branch.get_output_variable(core,
                                            project,
                                            "project.cable_routes")
    cables.plot(core, project, "Array Cable Layout")

    assert len(plt.get_fignums()) == 1

    plt.close("all")
Esempio n. 20
0
def test_NumpyLine_has_plot(core, project):
    
    project = deepcopy(project)    
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()
    
    module_menu.activate(core, project, "Mock Module")
    
    project_menu.initiate_dataflow(core, project)

    test = InputVariable("device.turbine_performance")
    result = test._find_receiving_interface(core, "AutoPlot")

    assert 'device.turbine_performance AutoPlot Interface' == result.get_name()
def test_filter_interface(core, project, tree):

    project = deepcopy(project)

    data_menu = DataMenu()
    module_menu = ModuleMenu()
    project_menu = ProjectMenu()

    tree = Tree()

    data_menu.select_database(project, "local")
    project_menu.initiate_pipeline(core, project)
    project_menu.initiate_options(core, project)

    filter_branch = tree.get_branch(core, project,
                                    'Database Filtering Interface')
    new_var = filter_branch.get_input_variable(core, project,
                                               "device.selected_name")
    new_var.set_raw_interface(core, "ExampleWaveDevice")
    new_var.read(core, project)

    module_menu.activate(core, project, "Hydrodynamics")

    project_menu.initiate_filter(core, project)

    assert True
Esempio n. 22
0
def test_dump_datastate_nodir(core, project, var_tree):
    
    project = deepcopy(project) 

    project_menu = ProjectMenu()
    module_menu = ModuleMenu()
    theme_menu = ThemeMenu()

    module_menu.activate(core, project, "Mock Module")
    theme_menu.activate(core, project,  "Mock Theme")
    
    project_menu.initiate_dataflow(core, project)

    with pytest.raises(ValueError):
        core.dump_datastate(project, "some_path")
Esempio n. 23
0
def test_economics_inputs(theme_menu, core, tidal_project, var_tree):

    theme_name = "Economics"
    data_menu = DataMenu()

    project_menu = ProjectMenu()
    project = deepcopy(tidal_project)
    theme_menu.activate(core, project, theme_name)
    project_menu.initiate_dataflow(core, project)
    data_menu.load_data(core, project)

    economics_branch = var_tree.get_branch(core, project, theme_name)
    economics_input_status = economics_branch.get_input_status(core, project)

    assert "project.estimate_energy_record" in economics_input_status
def test_moorings_inputs(module_menu, core, tidal_project, var_tree):

    mod_name = "Mooring and Foundations"
    data_menu = DataMenu()

    project_menu = ProjectMenu()
    project = deepcopy(tidal_project)
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)
    data_menu.load_data(core, project)

    moorings_branch = var_tree.get_branch(core, project, mod_name)

    moorings_input_status = moorings_branch.get_input_status(core, project)

    assert "device.dry_beam_area" in moorings_input_status
def wave_project(core):
    '''Share a Project object'''

    project_menu = ProjectMenu()
    var_tree = Tree()

    new_project = project_menu.new_project(core, "test wave")

    options_branch = var_tree.get_branch(core, new_project,
                                         "System Type Selection")
    device_type = options_branch.get_input_variable(core, new_project,
                                                    "device.system_type")
    device_type.set_raw_interface(core, "Wave Floating")
    device_type.read(core, new_project)

    return new_project
Esempio n. 26
0
def test_load_project_archive(core, project, var_tree, tmpdir):
    
    project = deepcopy(project) 

    project_menu = ProjectMenu()
    module_menu = ModuleMenu()
    theme_menu = ThemeMenu()

    module_menu.activate(core, project, "Mock Module")
    theme_menu.activate(core, project,  "Mock Theme")
    
    project_menu.initiate_dataflow(core, project)
                                   
    hydro_branch = var_tree.get_branch(core, project, "Mock Module")
    hydro_branch.read_test_data(core,
                                project,
                                os.path.join(dir_path,
                                             "inputs_wp2_tidal.pkl"))
                                             
    eco_branch = var_tree.get_branch(core, project, "Mock Theme")
    eco_branch.read_test_data(core,
                              project,
                              os.path.join(dir_path,
                                           "inputs_economics.pkl"))

    project_file_name = "my_project.prj"
    project_file_path = os.path.join(str(tmpdir), project_file_name)
    
    core.dump_project(project, project_file_path)

    del(project)
    
    assert os.path.isfile(project_file_path)
    
    new_root = os.path.join(str(tmpdir), "test")
    os.makedirs(new_root)
    
    move_file_path = os.path.join(str(tmpdir), "test", project_file_name)
    
    shutil.copy2(project_file_path, move_file_path)
    
    loaded_project = core.load_project(move_file_path)
    active_sim = loaded_project.get_simulation()

    assert loaded_project.check_integrity()
    assert active_sim.get_title() == "Default"
    assert "Mock Module" in module_menu.get_scheduled(core, loaded_project)
def test_maintenance_interface_entry(module_menu,
                                     core,
                                     wave_project,
                                     var_tree,
                                     mocker,
                                     tmpdir):
    
    # Make a source directory with some files
    config_tmpdir = tmpdir.mkdir("config")
    mock_dir = Directory(str(config_tmpdir))
        
    mocker.patch('dtocean_core.interfaces.maintenance.UserDataDirectory',
                 return_value=mock_dir,
                 autospec=True)
        
    mod_name = 'Operations and Maintenance'
    
    project_menu = ProjectMenu()
    project = deepcopy(wave_project)
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)
    
    operations_branch = var_tree.get_branch(core, project, mod_name)
    operations_branch.read_test_data(core,
                                     project,
                                     os.path.join(dir_path,
                                                  "inputs_wp6.pkl"))
    operations_branch.read_auto(core, project)
    
    can_execute = module_menu.is_executable(core, project,  mod_name)
    
    if not can_execute:
        
        inputs = operations_branch.get_input_status(core, project)
        pprint(inputs)
        assert can_execute
        
    connector = _get_connector(project, "modules")
    interface = connector.get_interface(core,
                                        project,
                                        mod_name)
                                        
    interface.connect(debug_entry=True)
                                        
    debugdir = config_tmpdir.join("..", "debug")
    
    assert len(debugdir.listdir()) == 1
Esempio n. 28
0
def test_load_datastate_archive(core, project, var_tree, tmpdir):
    
    temp_project = deepcopy(project) 

    project_menu = ProjectMenu()
    module_menu = ModuleMenu()
    theme_menu = ThemeMenu()

    module_menu.activate(core, temp_project, "Mock Module")
    theme_menu.activate(core, temp_project,  "Mock Theme")
    
    project_menu.initiate_dataflow(core, temp_project)
                                   
    hydro_branch = var_tree.get_branch(core, temp_project, "Mock Module")
    hydro_branch.read_test_data(core,
                                temp_project,
                                os.path.join(dir_path,
                                             "inputs_wp2_tidal.pkl"))
                                             
    eco_branch = var_tree.get_branch(core, temp_project, "Mock Theme")
    eco_branch.read_test_data(core,
                              temp_project,
                              os.path.join(dir_path,
                                           "inputs_economics.pkl"))


    datastate_file_name = "my_datastate.dts"
    datastate_file_path = os.path.join(str(tmpdir), datastate_file_name)
    
    core.dump_datastate(temp_project, datastate_file_path)
    
    del(temp_project)
    
    assert os.path.isfile(datastate_file_path)
    
    new_root = os.path.join(str(tmpdir), "test")
    os.makedirs(new_root)
    
    move_file_path = os.path.join(str(tmpdir), "test", datastate_file_name)
    shutil.copy2(datastate_file_path, move_file_path)
    
    temp_project = deepcopy(project) 

    project_menu = ProjectMenu()
    module_menu = ModuleMenu()
    theme_menu = ThemeMenu()

    module_menu.activate(core, temp_project, "Mock Module")
    
    project_menu.initiate_dataflow(core, temp_project)
    
    assert not core.has_data(temp_project, "device.turbine_interdistance")
    
    core.load_datastate(temp_project, move_file_path)

    assert temp_project.check_integrity()
    assert core.has_data(temp_project, "device.turbine_interdistance")
Esempio n. 29
0
def test_electrical_inputs(module_menu, core, tidal_project, var_tree):

    mod_name = "Electrical Sub-Systems"
    #    project_menu = ProjectMenu()
    data_menu = DataMenu()
    project_menu = ProjectMenu()

    project = deepcopy(tidal_project)
    module_menu.activate(core, project, mod_name)
    project_menu.initiate_dataflow(core, project)
    data_menu.load_data(core, project)

    electrical_branch = var_tree.get_branch(core, project, mod_name)

    electrical_input_status = electrical_branch.get_input_status(core, project)

    assert "component.transformers" in electrical_input_status
Esempio n. 30
0
def tidal_project(core, var_tree):
    '''Share a Project object'''

    project_menu = ProjectMenu()

    new_project = project_menu.new_project(core, "test tidal")

    options_branch = var_tree.get_branch(core, new_project,
                                         "System Type Selection")
    device_type = options_branch.get_input_variable(core, new_project,
                                                    "device.system_type")
    device_type.set_raw_interface(core, "Tidal Fixed")
    device_type.read(core, new_project)

    project_menu.initiate_pipeline(core, new_project)

    return new_project