test_boolean_regions.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:yt 作者: yt-project 项目源码 文件源码
def test_boolean_ray_slice_no_overlap():
    r"""Test to make sure that boolean objects (ray, slice, no overlap)
    behave the way we expect.

    Test non-overlapping ray and slice. This also checks that the original 
    regions don't change as part of constructing the booleans.
    """
    ds = fake_amr_ds()
    sl = ds.r[:,:,0.25]
    ra = ds.ray([0]*3, [0, 1, 0])
    # Store the original indices
    i1 = sl["index","morton_index"]
    i1.sort()
    i2 = ra["index","morton_index"]
    i2.sort()
    ii = np.concatenate((i1, i2))
    ii.sort()
    # Make some booleans
    bo1 = sl & ra
    bo2 = sl - ra
    bo3 = sl | ra
    bo4 = ds.union([sl, ra])
    bo5 = ds.intersection([sl, ra])
    # This makes sure the original containers didn't change.
    new_i1 = sl["index","morton_index"]
    new_i1.sort()
    new_i2 = ra["index","morton_index"]
    new_i2.sort()
    assert_array_equal(new_i1, i1)
    assert_array_equal(new_i2, i2)
    # Now make sure the indices also behave as we expect.
    empty = np.array([])
    assert_array_equal(bo1["index","morton_index"], empty)
    assert_array_equal(bo5["index","morton_index"], empty)
    b2 = bo2["index","morton_index"]
    b2.sort()
    assert_array_equal(b2, i1 )
    b3 = bo3["index","morton_index"]
    b3.sort()
    assert_array_equal(b3, ii)
    b4 = bo4["index","morton_index"]
    b4.sort()
    b5 = bo5["index","morton_index"]
    b5.sort()
    assert_array_equal(b3, b4)
    bo6 = sl ^ ra
    b6 = bo6["index", "morton_index"]
    b6.sort()
    assert_array_equal(b6, np.setxor1d(i1, i2))
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号