#include <iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
long double a, b, c, px, py, qx, qy;
cin >> a >> b >> c >> px >> py >> qx >> qy;
long double f = 0, x = 0, y = 0;
f = (qy - py) / (qx - px);//两点行成的直线斜率
x = (f - b) / (2 * a);//求导完是f=2*a*x+b,这时候只有x是未知量,也就是在曲线上斜率与直线斜率相同时的点的坐标。
y = a * pow(x, 2) + b * x + c;//求出改点纵坐标
if (qx == px)//竖着为1
{
cout << 1;
}
else if (qy == py)//横着根据开口上下,将函数极值与该直线的y坐标比
{
if (a > 0)
{
if ((4 * a * c - b * b) / (4 * a) > qy)
{
cout << 0;
}
else if ((4 * a * c - b * b) / (4 * a) < qy)
{
cout << 2;
}
else
{
cout << 1;
}
}
else
{
if ((4 * a * c - b * b) / (4 * a) > qy)
{
cout << 2;
}
else if ((4 * a * c - b * b) / (4 * a) < qy)
{
cout << 0;
}
else
{
cout << 1;
}
}
}
else if (a > 0)//如果线斜着,找到曲线上斜率等于直线斜率的时候在曲线上的点,带入直线方程,判断y与f(x)关系与开口上下来直线曲线位置
{
if (y > f * x - f * qx + qy)
{
cout << 0;
}
else if (y < f * x - f * qx + qy)
{
cout << 2;
}
else
{
cout << 1;
}
}
else if (a < 0)
{
if (y > f * x - f * qx + qy)
{
cout << 2;
}
else if (y < f * x - f * qx + qy)
{
cout << 0;
}
else
{
cout << 1;
}
}
cout << endl;
}
}