#include using namespace std; using ll = long long; int main(){ cin.tie(nullptr); ios_base::sync_with_stdio(false); //条件1:P_1Q_1とP2Q_2が平行 //操作によって、P_1Q_1の向きは変化しない。 //条件2:P_1Q_1の長さがP_2Q_2の長さより大きい。 //操作によって、P_1Q_1の長さは小さくなる。 ll T, x1, y1, x2, y2, X1, Y1, X2, Y2, dx, dy, DX, DY, L1, L2, g; cin >> T; while(T--){ cin >> x1 >> y1 >> x2 >> y2 >> X1 >> Y1 >> X2 >> Y2; L1 = (x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1); L2 = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1); if (L2 >= L1){ //元から一致している場合 if (x1 == X1 && y1 == Y1 && x2 == X2 && y2 == Y2) cout << "Yes" << endl; else cout << "No" << endl; continue; } dx = x2 - x1; dy = y2 - y1; g = gcd(abs(dx), abs(dy)); dx /= g; dy /= g; DX = X2 - X1; DY = Y2 - Y1; g = gcd(abs(DX), abs(DY)); DX /= g; DY /= g; cout << (dx == DX && dy == DY ? "Yes" : "No") << endl; } return 0; }