function toSqrt(number) { // 取平方根
return Math.sqrt(number)
}
function toPow (number) { // 求平方
return Math.pow(number, 2)
}
function toAbs(number) { // 求绝对值
return Math.abs(number)
}
var n = readline();
var ans ="NO";
for(let i = 0; i < n; i++){
let linesX = readline().split(" ");
let linesY = readline().split(" ");
var vectorLength = [];
for(let i = 0; i < 4; i++) {
for(let j = 0; j < i; j++) {
let vector = {
x: linesX[j] - linesX[((j+1)%4)],
y: linesY[j] - linesY[((j+1)%4)]
};
let newVectorLength = toSqrt(toPow(vector.x) + toPow(vector.y));
vectorLength.push(newVectorLength);
}
}
vectorLength = vectorLength.sort()
if(vectorLength[0] == vectorLength[3]
&& vectorLength[4] == vectorLength[5]
&& toAbs(2 * toPow(vectorLength[0]) - toPow(vectorLength[4])) <= Math.pow(1, -10)
) {
ans ="YES"
}
print(ans)
}
之后想到的 js比较暴力的方法 也不知道有没有优化的额