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