void test_buffer_is_empty_after_one_push_and_pop() {
	BoundedBuffer<int> buffer { 5 };
	buffer.push(5);
	buffer.pop();
	ASSERTM("Buffer should be empty after one push and pop", buffer.empty());
}
void test_buffer_is_not_empty_after_push_rvalue() {
	BoundedBuffer<int> buffer { 5 };
	buffer.push(5);
	ASSERTM("Buffer should not be empty after push", !buffer.empty());
}
void test_buffer_is_not_empty_after_push_lvalue() {
	BoundedBuffer<int, 5> buffer { };
	int const lvalue { 5 };
	buffer.push(lvalue);
	ASSERTM("Buffer should not be empty after push", !buffer.empty());
}