void test_buffer_size_is_fifty_after_fifty_pushs() {
	BoundedBuffer<int> buffer { 75 };
	50_times([&]() {buffer.push(5);});
	ASSERT_EQUAL(50, buffer.size());
}
void test_make_bounded_buffer_from_rvalue_argument_contains_one_element() {
	BoundedBuffer<MemoryOperationCounter> buffer = BoundedBuffer<MemoryOperationCounter>::make_buffer(MemoryOperationCounter{});
	ASSERT_EQUAL(1, buffer.size());
}
void test_buffer_size_is_one_after_push() {
	BoundedBuffer<int> buffer { 2 };
	buffer.push(1);
	ASSERT_EQUAL(1, buffer.size());
}
void test_make_bounded_buffer_from_two_lvalue_arguments_contains_two_elements() {
	MemoryOperationCounter element1{}, element2{};
	BoundedBuffer<MemoryOperationCounter> buffer = BoundedBuffer<MemoryOperationCounter>::make_buffer(element1, element2);
	ASSERT_EQUAL(2, buffer.size());
}