Advertisement
cepxuozab

BigDrawTest

Mar 10th, 2023 (edited)
1,516
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.60 KB | None | 0 0
  1. void BigDraw() {
  2.         Canvas canvas({3000, 2000});
  3.  
  4.         canvas.AddShape(ShapeType::RECTANGLE, {100, 100}, {4000, 20},
  5.                         MakeTextureSolid({3, 1000}, '*'));
  6.  
  7.         canvas.AddShape(ShapeType::ELLIPSE, {50, 50}, {30, 900},
  8.                         MakeTextureSolid({100, 100}, '&'));
  9.  
  10.         std::stringstream output;
  11.         canvas.Print(output);
  12.  
  13.         std::string answer;
  14.         answer.reserve(3002*2003);
  15.  
  16.         for (int i = 0; i < 3002; ++i) {
  17.             answer.push_back('#');
  18.         }
  19.         answer.push_back('\n');
  20.  
  21.         for (int i = 0; i < 2000; ++i) {
  22.             answer.push_back('#');
  23.             for (int j = 0; j < 3000; ++j) {
  24.                 if (IsPointInEllipse({j - 50, i - 50}, {30, 900})) {
  25.                     if (i < 150) {
  26.                         answer.push_back('&');
  27.                     } else {
  28.                         answer.push_back('.');
  29.                     }
  30.                 } else if (i >= 100 && j >= 100 && j < 4100 && i < 120) {
  31.                     if (j < 103) {
  32.                         answer.push_back('*');
  33.                     } else {
  34.                         answer.push_back('.');
  35.                     }
  36.                 } else {
  37.                     answer.push_back(' ');
  38.                 }
  39.             }
  40.             answer.push_back('#');
  41.             answer.push_back('\n');
  42.         }
  43.  
  44.         for (int i = 0; i < 3002; ++i) {
  45.             answer.push_back('#');
  46.         }
  47.         answer.push_back('\n');
  48.  
  49.         Assert(answer == output.str(), "Your Shape implementation draws incorrect figure");
  50.     }
  51.  
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement