andrelievable

google test

Dec 7th, 2020 (edited)
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.82 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <gtest/gtest.h>
  4. using namespace std;
  5.  
  6. class Matrix  //klasa macierzy
  7. {
  8. public:
  9.  
  10.     Matrix(int, int);    // domyślny konstruktor = metoda
  11.     int** tab;          // tworzymy wskaznik do tablicy
  12.     int wers;            // rozmiar wersów
  13.     int kolumna;       // rozmiar kolunm
  14.  
  15.     void dodawanie(const Matrix& M2);
  16.     void wstaw();       // funkcja uzupełniająac macierz 
  17.     void show();
  18.     ~Matrix();
  19.    
  20.  
  21. };
  22.  
  23. Matrix::Matrix(int size_w, int size_k)         //deklaracja meotody
  24. {
  25.     this->kolumna = size_k;               // wskazujemy na atrybut obiektu kolumna i przypisujemy go do argumntu size_k
  26.     this->wers = size_w;                   //wskazujmey na atrybut obiektu wers i przypisujemy bo wartość
  27.     this->tab = new int*[size_w];         // alokujemy pamiec na tablice o romiarze
  28.                                                //size_w czyli wierszy
  29.  
  30.     for (int i = 0; i < this->wers; i++)                  //alokujemy pamieć
  31.     {
  32.         for (int j = 0; j < this->kolumna; j++)
  33.         {
  34.             this->tab[i] = new int[size_k];
  35.  
  36.         }
  37.     }
  38. }
  39.  
  40. Matrix::~Matrix()
  41. {
  42. for (int i = 0; i < this->wers; i++)
  43.     {
  44.    
  45.             delete[] this->tab[i];
  46.     }
  47.     delete this->tab;
  48. }
  49.  
  50. void Matrix::wstaw()
  51. {
  52.     for (int i = 0; i < this->wers; i++)          // wypelniamy macierz wersami
  53.     {
  54.         for (int j = 0; j < this->kolumna; j++)     // jednoczesnie wypełniając
  55.                                                             //kolumny
  56.         {
  57.             cout << "Wartosc [" << i << "][" << j << "]  ";
  58.             cin >> this->tab[i][j];                 //wprowadzamy z klawiruty
  59.                                                                  //wartosci
  60.         }
  61.     }
  62. }
  63.  
  64. void Matrix::show()
  65. {
  66.    
  67.     for (int i = 0; i < this->wers; i++)
  68.     {
  69.         for (int j = 0; j < this->kolumna; j++)
  70.         {
  71.             cout << this->tab[i][j] << " ";
  72.         }
  73.         cout << endl;
  74.     }
  75. }
  76. void Matrix::dodawanie(const Matrix& M2)
  77. {
  78.  
  79.     if (this->wers != M2.wers || this->kolumna != M2.kolumna)
  80.     {
  81.         cout << "blad" << endl;
  82.         exit(-1);
  83.     }
  84.     else
  85.     {
  86.         for (int i = 0; i < this->wers; i++)
  87.         {
  88.             for (int j = 0; j < this->kolumna; j++)
  89.             {
  90.  
  91.                 this->tab[i][j] += M2.tab[i][j];
  92.  
  93.             }
  94.             cout << endl;
  95.         }
  96.     }
  97. }
  98. TEST(Matrix, dodawanie)
  99. {
  100.     Matrix M(3, 2);           //twozrymy obiekt klasy  cyzli macierz o
  101.     Matrix M2(3, 2);                                
  102.     M.wstaw();                               // dla obiektu klasy M wykona się funkcja
  103.     cout << "Macierz M" << endl;
  104.     M.show();
  105.     cout << "dane drugiej macierzy:  " << endl;
  106.     M2.wstaw();                               // dla obiektu klasy M2 wykona się funkcja
  107.     cout << "Macierz M2" << endl;
  108.     M2.show();
  109.     M.dodawanie(M2);
  110.     cout << "Macierz M po dodaniu do niej macierzy M2" << endl;
  111.     M.show();
  112.    
  113.  
  114.     for (int i = 0; i < M.wers; i++)
  115.     {
  116.         for (int j = 0; j < M.kolumna; j++)
  117.         {
  118.             ASSERT_EQ(M.tab[i][j], 5);
  119.         }
  120.     }
  121.    
  122. }
  123.  
  124.  
  125. int main(int argc, char* argv[])
  126. {
  127.  
  128.     testing::InitGoogleTest(&argc, argv);
  129.     RUN_ALL_TESTS();
  130.  
  131. }
  132.  
Advertisement
Add Comment
Please, Sign In to add comment