Skip to content

Commit 6ec4ba4

Browse files
committed
Don't compare out-of-tensor values in tests
1 parent 844f723 commit 6ec4ba4

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

palace-core/src/test_util.rs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,9 @@ pub fn compare_tensor_approx<D: Dimension>(
5959
.finish(1 << 30, 1 << 30)
6060
.unwrap();
6161

62+
assert_eq!(result.metadata, expected.metadata);
63+
let md = result.metadata;
64+
6265
runtime
6366
.resolve(None, false, |ctx, _| {
6467
let result = &result;
@@ -80,15 +83,20 @@ pub fn compare_tensor_approx<D: Dimension>(
8083
let b_l = ctx.submit(result.chunks.request(pos)).await;
8184
let b_r = ctx.submit(expected.chunks.request(pos)).await;
8285

86+
let chunk_info = md.chunk_info(pos);
87+
8388
let b_l = &*b_l;
8489
let b_r = &*b_r;
8590
for (i, (l, r)) in b_l.iter().zip(b_r.iter()).enumerate() {
8691
let diff = (l - r).abs();
87-
if diff > max_diff || l.is_nan() != r.is_nan() {
88-
panic!(
89-
"{:?}\nand\n{:?}\ndiffer by {}, i.e. more than {} at position {}: {} vs. {}",
90-
b_l, b_r, diff, max_diff, i, l, r
91-
);
92+
let in_chunk_pos = crate::vec::from_linear(i, &chunk_info.mem_dimensions);
93+
if in_chunk_pos.zip(&chunk_info.logical_dimensions, |l, r| l<r).hand() {
94+
if diff > max_diff || l.is_nan() != r.is_nan() {
95+
panic!(
96+
"{:?}\nand\n{:?}\ndiffer by {}, i.e. more than {} at position {}: {} vs. {}",
97+
b_l, b_r, diff, max_diff, i, l, r
98+
);
99+
}
92100
}
93101
}
94102
}

0 commit comments

Comments
 (0)