예제 #1
0
def test_default():
    port = UniformRectilinearGridPort()
    printer = NcPortPrinter(port, 'landscape_surface__elevation')
    printer.open()
    printer.write()

    assert_isfile_and_remove('landscape_surface__elevation.nc')
예제 #2
0
def test_rerun_with_print():
    del_component_instances(['earth_port'])

    contents = """
name: earth_port
class: EarthPort

print:
- name: earth_surface__temperature
  interval: 20
  format: vtk
    """
    comp = Component.from_string(contents)
    comp.go()

    assert_equal(comp._port.current_time, 100.)
    for i in xrange(5):
        assert_isfile_and_remove('earth_surface__temperature_%04d.vtu' % i)

    del_component_instances(['earth_port'])

    comp = Component.from_string(contents)
    comp.go()

    assert_equal(comp._port.current_time, 100.)
    for i in xrange(5):
        assert_isfile_and_remove('earth_surface__temperature_%04d.vtu' % i)
예제 #3
0
def test_print_events():
    del_component_instances(['air_port', 'earth_port'])

    air = Component.from_string("""
name: air_port
class: AirPort
print:
- name: air__temperature
  interval: 25.
  format: vtk
""")
    earth = Component.from_string("""
name: earth_port
class: EarthPort
print:
- name: glacier_top_surface__slope
  interval: 20.
  format: vtk
""")
    earth.connect('air_port', air)
    earth.go()

    for i in xrange(5):
        assert_isfile_and_remove('glacier_top_surface__slope_%04d.vtu' % i)
    for i in xrange(4):
        assert_isfile_and_remove('air__temperature_%04d.vtu' % i)
예제 #4
0
def test_one_file():
    port = UniformRectilinearGridPort()
    printer = VtkPortPrinter(port, 'landscape_surface__elevation')
    printer.open()
    printer.write()

    assert_isfile_and_remove('landscape_surface__elevation_0000.vtu')
예제 #5
0
def test_port_as_string():
    printer = VtkPortPrinter('air_port', 'air__density')
    printer.open()
    printer.write()
    printer.close()

    assert_isfile_and_remove('air__density_0000.vtu')
예제 #6
0
def test_print_events():
    air = Component.load("""
name: air_port
class: AirPort
print:
- name: air__temperature
  interval: 25.
  format: vtk
""")
    earth = Component.load("""
name: earth_port
class: EarthPort
print:
- name: glacier_top_surface__slope
  interval: 20.
  format: vtk
""")
    earth.connect('air_port',
                  air,
                  vars_to_map=[
                      (
                          'glacier_top_surface__slope',
                          'air__temperature',
                      ),
                      (
                          'earth_surface__temperature',
                          'air__temperature',
                      ),
                  ])
    earth.go()

    for i in xrange(5):
        assert_isfile_and_remove('glacier_top_surface__slope_%04d.vtu' % i)
    for i in xrange(4):
        assert_isfile_and_remove('air__temperature_%04d.vtu' % i)
def test_default():
    port = UniformRectilinearGridPort()
    printer = BovPortPrinter(port, "landscape_surface__elevation")
    printer.open()
    printer.write()

    assert_isfile_and_remove("landscape_surface__elevation_0000.dat")
    assert_isfile_and_remove("landscape_surface__elevation_0000.bov")
예제 #8
0
def test_default():
    port = UniformRectilinearGridPort()
    printer = BovPortPrinter(port, "landscape_surface__elevation")
    printer.open()
    printer.write()

    assert_isfile_and_remove("landscape_surface__elevation_0000.dat")
    assert_isfile_and_remove("landscape_surface__elevation_0000.bov")
예제 #9
0
def test_multiple_files():
    port = UniformRectilinearGridPort()
    for _ in xrange(5):
        printer = BovPortPrinter(port, "sea_surface__temperature")
        printer.open()
        printer.write()

    assert_isfile_and_remove("sea_surface__temperature_0000.dat")
    assert_isfile_and_remove("sea_surface__temperature_0000.bov")
def test_multiple_files():
    port = UniformRectilinearGridPort()
    for _ in xrange(5):
        printer = BovPortPrinter(port, "sea_surface__temperature")
        printer.open()
        printer.write()

    assert_isfile_and_remove("sea_surface__temperature_0000.dat")
    assert_isfile_and_remove("sea_surface__temperature_0000.bov")
예제 #11
0
def test_multiple_files():
    port = UniformRectilinearGridPort()
    for _ in xrange(5):
        printer = VtkPortPrinter(port, 'sea_surface__temperature')
        printer.open()
        printer.write()
        printer.close()

    assert_isfile_and_remove('sea_surface__temperature_0000.vtu')
예제 #12
0
def test_time_series():
    port = UniformRectilinearGridPort()
    printer = NcPortPrinter(port,
                            'sea_floor_surface_sediment__mean_of_grain_size')
    printer.open()
    for _ in xrange(5):
        printer.write()
    printer.close()

    assert_isfile_and_remove(
        'sea_floor_surface_sediment__mean_of_grain_size.nc')
예제 #13
0
def test_one_printer():
    queue = PortPrinter.from_string("""
[print.air__density]
format=vtk
port=air_port
""")
    assert_is_instance(queue, PortPrinter)

    queue.open()
    queue.write()

    assert_isfile_and_remove('air__density_0000.vtu')
예제 #14
0
def test_one_event():
    foo = PrintEvent(port='air_port', name='air__density', format='vtk')

    with EventManager(((foo, 1.), )) as mngr:
        assert_equal(mngr.time, 0.)

        mngr.run(1.)
        assert_equal(mngr.time, 1.)

        mngr.run(1.)
        assert_equal(mngr.time, 1.)

        for time in np.arange(1., 2., .1):
            mngr.run(time)
            assert_equal(mngr.time, time)

        mngr.run(2.)
        assert_equal(mngr.time, 2.)

        for time in np.arange(2., 5., .1):
            mngr.run(time)
            assert_equal(mngr.time, time)

    assert_isfile_and_remove('air__density_0000.vtu')
    assert_isfile_and_remove('air__density_0001.vtu')
    assert_isfile_and_remove('air__density_0002.vtu')
    assert_isfile_and_remove('air__density_0003.vtu')
예제 #15
0
def test_multiple_files():
    expected_files = [
        'sea_surface__temperature.nc',
        'sea_surface__temperature.0.nc',
        'sea_surface__temperature.1.nc',
        'sea_surface__temperature.2.nc',
        'sea_surface__temperature.3.nc',
    ]

    port = UniformRectilinearGridPort()
    for _ in xrange(5):
        printer = NcPortPrinter(port, 'sea_surface__temperature')
        printer.open()
        printer.write()

    for filename in expected_files:
        assert_isfile_and_remove(filename)
예제 #16
0
def test_time_series():
    expected_files = [
        'sea_floor_surface_sediment__mean_of_grain_size_0000.vtu',
        'sea_floor_surface_sediment__mean_of_grain_size_0001.vtu',
        'sea_floor_surface_sediment__mean_of_grain_size_0002.vtu',
        'sea_floor_surface_sediment__mean_of_grain_size_0003.vtu',
        'sea_floor_surface_sediment__mean_of_grain_size_0004.vtu',
    ]

    port = UniformRectilinearGridPort()
    printer = VtkPortPrinter(port,
                             'sea_floor_surface_sediment__mean_of_grain_size')
    printer.open()
    for _ in xrange(5):
        printer.write()
    printer.close()

    for filename in expected_files:
        assert_isfile_and_remove(filename)
예제 #17
0
def test_print_events():
    del_component_instances(['earth_port'])

    contents = """
name: earth_port
class: EarthPort
print:
- name: earth_surface__temperature
  interval: 0.1
  format: nc
- name: earth_surface__density
  interval: 20.
  format: vtk
- name: glacier_top_surface__slope
  interval: 0.3
  format: nc
    """
    comp = Component.from_string(contents)
    comp.go()

    assert_equal(comp._port.current_time, 100.)
    assert_isfile_and_remove('earth_surface__temperature.nc')
    assert_isfile_and_remove('glacier_top_surface__slope.nc')
    for i in xrange(5):
        assert_isfile_and_remove('earth_surface__density_%04d.vtu' % i)
예제 #18
0
def test_time_series():
    expected_files = [
        "sea_floor_surface_sediment__mean_of_grain_size_0000.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0000.bov",
        "sea_floor_surface_sediment__mean_of_grain_size_0001.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0001.bov",
        "sea_floor_surface_sediment__mean_of_grain_size_0002.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0002.bov",
        "sea_floor_surface_sediment__mean_of_grain_size_0003.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0003.bov",
        "sea_floor_surface_sediment__mean_of_grain_size_0004.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0004.bov",
    ]

    port = UniformRectilinearGridPort()
    printer = BovPortPrinter(port, "sea_floor_surface_sediment__mean_of_grain_size")
    printer.open()
    for _ in xrange(5):
        printer.write()
    printer.close()

    for filename in expected_files:
        assert_isfile_and_remove(filename)
def test_time_series():
    expected_files = [
        "sea_floor_surface_sediment__mean_of_grain_size_0000.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0000.bov",
        "sea_floor_surface_sediment__mean_of_grain_size_0001.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0001.bov",
        "sea_floor_surface_sediment__mean_of_grain_size_0002.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0002.bov",
        "sea_floor_surface_sediment__mean_of_grain_size_0003.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0003.bov",
        "sea_floor_surface_sediment__mean_of_grain_size_0004.dat",
        "sea_floor_surface_sediment__mean_of_grain_size_0004.bov",
    ]

    port = UniformRectilinearGridPort()
    printer = BovPortPrinter(port,
                             "sea_floor_surface_sediment__mean_of_grain_size")
    printer.open()
    for _ in xrange(5):
        printer.write()
    printer.close()

    for filename in expected_files:
        assert_isfile_and_remove(filename)
예제 #20
0
def test_multiple_printers():
    queue = PortPrinter.from_string("""
[print.air__density]
format=vtk
port=air_port

[print.glacier_top_surface__slope]
format=nc
port=earth_port
""")

    assert_is_instance(queue, list)

    for printer in queue:
        printer.open()

    for _ in xrange(5):
        for printer in queue:
            printer.write()

    assert_isfile_and_remove('air__density_0000.vtu')
    assert_isfile_and_remove('air__density_0001.vtu')
    assert_isfile_and_remove('air__density_0002.vtu')
    assert_isfile_and_remove('air__density_0003.vtu')
    assert_isfile_and_remove('air__density_0004.vtu')
    assert_isfile_and_remove('glacier_top_surface__slope.nc')
예제 #21
0
def test_two_events():
    foo = PrintEvent(port='air_port', name='air__density', format='vtk')
    bar = PrintEvent(port='air_port', name='air__temperature', format='vtk')

    with EventManager(((foo, 1.), (bar, 1.2))) as mngr:
        mngr.run(1.)
        assert_isfile_and_remove('air__density_0000.vtu')

        mngr.run(2.)
        assert_isfile_and_remove('air__density_0001.vtu')
        assert_isfile_and_remove('air__temperature_0000.vtu')
        assert_equal(mngr.time, 2.)

        mngr.run(5.)
        assert_equal(mngr.time, 5.)

    assert_isfile_and_remove('air__density_0002.vtu')
    assert_isfile_and_remove('air__density_0003.vtu')
    assert_isfile_and_remove('air__density_0004.vtu')
    assert_false(os.path.exists('air__density_0005.vtu'))

    assert_isfile_and_remove('air__temperature_0001.vtu')
    assert_isfile_and_remove('air__temperature_0002.vtu')
    assert_isfile_and_remove('air__temperature_0003.vtu')
    assert_false(os.path.exists('air__temperature_0004.vtu'))