What is the 1 test case failing here

#include
#include
using namespace std;
int main()
{
int a,b,c;
float dis,root1,root2;
cin >>a>>b>>c;
dis=bb-4a*c;
if(dis>0)
{
cout<<“Real and distinct”<<endl;

	 root1 = (-b - sqrt(dis)) / (2 * a);
	 root2 = (-b + sqrt(dis)) / (2 * a);
	 cout<<root1<<" "<<root2;

}
else if (dis=0)
{
    cout<<"real and equal"<<endl;
     root1 = (-b + sqrt(dis)) / (2*a);
    cout << "root1 = root2 =" << root1 << endl;
}
else
{
   cout<<"imaginary";
}
return 0;

}

updated a few things in the code

1 .if ( d == 0 ) and not if ( d = 0 )
2. when printing equal roots u were printing some additional o/p statement which are not required, also print the root twice