echo 'Testing constructor', PHP_EOL; assert($bucket->getMaxVolume() === 5); assert($bucket->getCurrentVolume() === 2); assert($bucket->getName() === 'Test'); echo 'END Testing constructor', PHP_EOL; echo 'Testing Bucket::getRemainingSpace', PHP_EOL; assert($bucket->getRemainingSpace() === 3); echo 'END Testing Bucket::getRemainingSpace', PHP_EOL; echo 'Testing Bucket::addLiquid', PHP_EOL; $bucket->addLiquid(2); assert($bucket->getCurrentVolume() === 4); $bucket->addLiquid(2); assert($bucket->getCurrentVolume() <= $bucket->getMaxVolume()); echo 'END Testing Bucket::addLiquid', PHP_EOL; echo 'Testing Bucket::emptyDownDrain', PHP_EOL; $bucket->emptyDownDrain(); assert($bucket->getCurrentVolume() === 0); echo 'END Testing Bucket::emptyDownDrain', PHP_EOL; echo 'Testing Bucket::fill', PHP_EOL; $bucket->fill(); assert($bucket->getCurrentVolume() === $bucket->getMaxVolume()); echo 'END Testing Bucket::fill', PHP_EOL; echo 'Testing Bucket::transfer', PHP_EOL; $bucket->emptyDownDrain(); $smallBucket = new Bucket(2, 2, 'Small'); $bucket->transfer($smallBucket); assert($bucket->getCurrentVolume() === $smallBucket->getMaxVolume()); assert($smallBucket->getCurrentVolume() === 0); $largeBucket = new Bucket(5, 5, 'Large'); $bucket->transfer($largeBucket); assert($bucket->getCurrentVolume() === 5);