示例#1
0
def test_from_2d_voronoi():

    grid = hexa_grid2d(6, 4, 1, 1)
    datasets = from_2d_voronoi(Voronoi(grid))
    assert datasets["vert"].shape[0] == 32
    assert datasets["edge"].shape[0] == 82
    assert datasets["face"].shape[0] == 24
示例#2
0
def test_cell_centered_patch():
    grid = hexa_grid2d(6, 4, 3, 3)
    datasets = from_2d_voronoi(Voronoi(grid))
    _ = Sheet("test", datasets)

    extruded = extrude(datasets, method="translation")
    mono = Monolayer("test", extruded, config.geometry.bulk_spec())
    submono = utils.cell_centered_patch(mono, 5, 1)

    assert submono.Nc == 4
示例#3
0
def test_face_centered_patch():
    grid = hexa_grid2d(6, 4, 3, 3)
    datasets = from_2d_voronoi(Voronoi(grid))
    sheet = Sheet("test", datasets)

    subsheet = utils.face_centered_patch(sheet, 5, 2)

    assert subsheet.Nf == 6

    extruded = extrude(datasets, method="translation")
    mono = Monolayer("test", extruded, config.geometry.bulk_spec())
    submono = utils.face_centered_patch(mono, 15, 1)
    assert submono.Nf == 19
示例#4
0
def test_sheet_extract_coordinate():
    grid = hexa_grid2d(6, 4, 3, 3)
    datasets = from_2d_voronoi(Voronoi(grid))
    sheet = Sheet("test_extract_bounding_box", datasets)
    subsheet = sheet.extract_bounding_box(
        [sheet.face_df["x"].min(), sheet.face_df["x"].max() / 2],
        [sheet.face_df["y"].min(), sheet.face_df["y"].max() / 2],
    )
    assert subsheet.face_df["x"].max() <= sheet.face_df["x"].max() / 2
    assert subsheet.face_df["x"].min() >= sheet.face_df["x"].min()
    assert subsheet.face_df["y"].max() <= sheet.face_df["y"].max() / 2
    assert subsheet.face_df["y"].min() >= sheet.face_df["y"].min()
    assert subsheet.face_df["z"].max() <= sheet.face_df["z"].max()
    assert subsheet.face_df["z"].min() >= sheet.face_df["z"].min()
示例#5
0
def test_multisheet():

    base_specs = tyssue.config.geometry.flat_sheet()
    specs = base_specs.copy()
    specs["face"]["layer"] = 0
    specs["vert"]["layer"] = 0
    specs["vert"]["depth"] = 0.0
    specs["edge"]["layer"] = 0
    specs["settings"]["geometry"] = "flat"
    specs["settings"]["interpolate"] = {
        "function": "multiquadric",
        "smooth": 0
    }
    layer_args = [
        (24, 24, 1, 1, 0.4),
        (16, 16, 2, 2, 1),
        (24, 24, 1, 1, 0.4),
        (24, 24, 1, 1, 0.4),
    ]
    dz = 1.0

    layer_datasets = []
    for i, args in enumerate(layer_args):
        centers = hexa_grid2d(*args)
        data = from_2d_voronoi(Voronoi(centers))
        data["vert"]["z"] = i * dz
        layer_datasets.append(data)

    msheet = MultiSheet("more", layer_datasets, specs)
    bbox = [[0, 25], [0, 25]]
    for sheet in msheet:
        edge_out = sheet.cut_out(bbox, coords=["x", "y"])
        sheet.remove(edge_out)

    MultiSheetGeometry.update_all(msheet)
    assert np.all(np.isfinite(msheet[0].face_df["area"]))
示例#6
0
def test_to_nd():
    grid = hexa_grid2d(6, 4, 3, 3)
    datasets = from_2d_voronoi(Voronoi(grid))
    sheet = Sheet("test", datasets)
    result = utils._to_3d(sheet.face_df["x"])
    assert (sheet.face_df[['x', 'y', 'z']] * result).shape[1] == 3