use vyre::ir::{BufferDecl, DataType, Expr, Node, Program};
use vyre_conform::{reference::interp, spec::value::Value};
#[test]
fn workgroup_bytes_buffer_honors_declared_count() {
let program = Program {
entry_op_id: None,
buffers: vec![
BufferDecl::workgroup("wg", 100, DataType::Bytes),
BufferDecl::read_write("out", 0, DataType::U32),
],
workgroup_size: [1, 1, 1],
entry: vec![Node::store("out", Expr::u32(0), Expr::buf_len("wg"))],
};
let outputs = interp::run(&program, &[Value::Bytes(vec![0; 4])])
.expect("workgroup Bytes buffer must be sized by count");
assert_eq!(outputs, vec![Value::U32(100)]);
}