samedi 18 avril 2020

Test for TDD based development(C++) - cant understand?

I'm doing some tasks on codewars website, but I'm completely stacked. I should write a class and test it like this:

// TODO: Replace examples and use   by writing your own tests

Describe(any_group_name_you_want)
{
    It(should_do_something)
    {
        Assert::That("Instead I ran tests without changing anything and thats why this is failing", Equals("I added my own tests for TDD based development"));
    }
};

I spend so many hours) here my class...

#include <string>
using namespace std;

    class RomanNumerals
    {
    public:
    RomanNumerals()=default;
    string toRoman(int number)
    {
      string result{};
      int source{number};
      int temp{};

      temp=source/1000;
      for(int i{};i<temp;++i)result+='M';
      source%=1000;

      temp=source/100;
      if(temp<1)temp;
        else if(temp<4)for(int i{};i<temp;++i)result+='C';
        else if(temp<5)result+="CD";
        else if(temp<6)result+='D';
        else if(temp<9){result+='D';for(int i{};i<temp-5;++i)result+='C';}
        else {result+="CM";}
      source%=100;

      temp=source/10;
      if(temp<1)temp;
        else if(temp<4)for(int i{};i<temp;++i)result+='X';
        else if(temp<5)result+="XL";
        else if(temp<6)result+='L';
        else if(temp<9){result+='L';for(int i{};i<temp-5;++i)result+='X';}
        else {result+="XC";}
      source%=10;

      temp=source;
      if(temp<1)temp;
        else if(temp<4)for(int i{};i<temp;++i)result+='I';
        else if(temp<5)result+="IV";
        else if(temp<6)result+='V';
        else if(temp<9){result+='V';for(int i{};i<temp-5;++i)result+='I';}
        else {result+="IX";}

     return result;
     }
    int fromRoman(string str)
    {
    string temp{"MCCXXIX"};
        int result{};
      vector<string>searchArr{"M","CM","DCCC","DCC","DC","D","CD","CCC","CC","C",
                                  "XC","LXXX","LXX","LX","L","XL","XXX","XX","X",
                                  "IX","VIII","VII","VI","V","IV","III","II","I"};
      vector<string>temp1; 
      for(auto i:searchArr)
        {
      auto found=temp.find(i);
        if(found!=std::string::npos)
        {
      temp1.push_back(i); 
        temp.erase(0,i.length()); 
        }
        }
        for(auto i:temp1)
        {
        if(i=="M")
        result+=1000;
        else if(i=="CM")
        result+=900;
        else if(i=="DCCC")
        result+=800;
        else if(i=="DCC")
        result+=700;
        else if(i=="DC")
        result+=600;
        else if(i=="D")
        result+=500;
        else if(i=="CD")
        result+=400;
        else if(i=="CCC")
        result+=300;
        else if(i=="CC")
        result+=200;
        else if(i=="C")
        result+=100;
      else if(i=="XC")
        result+=90;
        else if(i=="LXXX")
        result+=80;
        else if(i=="LXX")
        result+=70;
        else if(i=="LX")
        result+=60;
        else if(i=="L")
        result+=50;
        else if(i=="XL")
        result+=40;
        else if(i=="XXX")
        result+=30;
        else if(i=="XX")
        result+=20;
        else if(i=="X")
        result+=10;
      else if(i=="IX")
        result+=9;
        else if(i=="VIII")
        result+=8;
        else if(i=="VII")
        result+=7;
        else if(i=="VI")
        result+=6;
        else if(i=="V")
        result+=5;
        else if(i=="IV")
        result+=4;
        else if(i=="III")
        result+=3;
        else if(i=="II")
        result+=2;
        else if(i=="I")
        result+=1;
        }
    return result;
    }
    };

If you still here thank you! I just print here some text to pass to question to the system, because i have mostly code here, so site is not good about it....

Aucun commentaire:

Enregistrer un commentaire