#include <iostream>
using namespace std;
class Rectangle {
public:
void SetSize(int heightVal, int widthVal) {
height = heightVal;
width = widthVal;
}
int GetArea() const;
int GetPerimeter() const;
private:
int height;
int width;
};
int Rectangle::GetArea() const {
return height * height;
}
int Rectangle::GetPerimeter() const {
return (height * 2) + (width * 2);
}
int main() {
Rectangle myRectangle;
myRectangle.SetSize(1, 1);
if (myRectangle.GetArea() != 1) {
cout << "FAILED GetArea() for 1, 1" << endl;
}
if (myRectangle.GetPerimeter() != 4) {
cout << "FAILED GetPerimeter() for 1, 1" << endl;
}
myRectangle.SetSize(2, 3);
if (myRectangle.GetArea() != 6) {
cout << "FAILED GetArea() for 2, 3" << endl;
}
if (myRectangle.GetPerimeter() != 10) {
cout << "FAILED GetPerimeter() for 2, 3" << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgUmVjdGFuZ2xlIHsKcHVibGljOgogICB2b2lkIFNldFNpemUoaW50IGhlaWdodFZhbCwgaW50IHdpZHRoVmFsKSB7CiAgICAgIGhlaWdodCA9IGhlaWdodFZhbDsKICAgICAgd2lkdGggPSB3aWR0aFZhbDsKICAgfQogICBpbnQgR2V0QXJlYSgpIGNvbnN0OwogICBpbnQgR2V0UGVyaW1ldGVyKCkgY29uc3Q7Cgpwcml2YXRlOgogICBpbnQgaGVpZ2h0OwogICBpbnQgd2lkdGg7Cn07CgppbnQgUmVjdGFuZ2xlOjpHZXRBcmVhKCkgY29uc3QgewogICByZXR1cm4gaGVpZ2h0ICogaGVpZ2h0Owp9CgppbnQgUmVjdGFuZ2xlOjpHZXRQZXJpbWV0ZXIoKSBjb25zdCB7CiAgIHJldHVybiAoaGVpZ2h0ICogMikgKyAod2lkdGggKiAyKTsKfQoKaW50IG1haW4oKSB7CiAgIFJlY3RhbmdsZSBteVJlY3RhbmdsZTsKCiAgIG15UmVjdGFuZ2xlLlNldFNpemUoMSwgMSk7CiAgIGlmIChteVJlY3RhbmdsZS5HZXRBcmVhKCkgIT0gMSkgewogICAgICBjb3V0IDw8ICJGQUlMRUQgR2V0QXJlYSgpIGZvciAxLCAxIiA8PCBlbmRsOwogICB9CiAgIGlmIChteVJlY3RhbmdsZS5HZXRQZXJpbWV0ZXIoKSAhPSA0KSB7CiAgICAgIGNvdXQgPDwgIkZBSUxFRCBHZXRQZXJpbWV0ZXIoKSBmb3IgMSwgMSIgPDwgZW5kbDsKICAgfQoKICAgbXlSZWN0YW5nbGUuU2V0U2l6ZSgyLCAzKTsKICAgaWYgKG15UmVjdGFuZ2xlLkdldEFyZWEoKSAhPSA2KSB7CiAgICAgIGNvdXQgPDwgIkZBSUxFRCBHZXRBcmVhKCkgZm9yIDIsIDMiIDw8IGVuZGw7CiAgIH0KICAgaWYgKG15UmVjdGFuZ2xlLkdldFBlcmltZXRlcigpICE9IDEwKSB7CiAgICAgIGNvdXQgPDwgIkZBSUxFRCBHZXRQZXJpbWV0ZXIoKSBmb3IgMiwgMyIgPDwgZW5kbDsKICAgfQoKICAgcmV0dXJuIDA7Cn0=