#include <bits/stdc++.h>
using namespace std;
int tc;
struct point {
  long long x, y;
};
bool eq(point a, point b) { return a.x == b.x && a.y == b.y; }
struct segment {
  point p1, p2;
};
void read(segment& s) { cin >> s.p1.x >> s.p1.y >> s.p2.x >> s.p2.y; }
long long sqr(long long x) { return x * x; }
bool good_ang(segment sa, segment sb) {
  point pa, pb;
  pa.x = sa.p2.x - sa.p1.x;
  pa.y = sa.p2.y - sa.p1.y;
  pb.x = sb.p2.x - sb.p1.x;
  pb.y = sb.p2.y - sb.p1.y;
  long long cross = pa.x * pb.y - pa.y * pb.x;
  long long dot = pa.x * pb.x + pa.y * pb.y;
  return cross != 0 && dot >= 0;
}
bool in_seg(point p, segment s) {
  point v1, v2;
  v1.x = s.p1.x - p.x;
  v1.y = s.p1.y - p.y;
  v2.x = s.p2.x - p.x;
  v2.y = s.p2.y - p.y;
  long long cross = v1.x * v2.y - v2.x * v1.y;
  long long dot = v1.x * v2.x + v1.y * v2.y;
  if (cross != 0) return false;
  return dot < 0;
}
bool good_cut(point p, segment s) {
  long long d1 = sqr(s.p1.x - p.x) + sqr(s.p1.y - p.y);
  long long d2 = sqr(s.p2.x - p.x) + sqr(s.p2.y - p.y);
  if (d1 > d2) swap(d1, d2);
  return d1 * 16 >= d2;
}
bool ok(segment s, segment sa, segment sb) {
  if (eq(sa.p1, sb.p2))
    swap(sb.p1, sb.p2);
  else if (eq(sa.p2, sb.p1))
    swap(sa.p1, sa.p2);
  else if (eq(sa.p2, sb.p2)) {
    swap(sa.p1, sa.p2);
    swap(sb.p1, sb.p2);
  }
  if (!eq(sa.p1, sb.p1)) return false;
  if (!good_ang(sa, sb)) return false;
  if (!in_seg(s.p1, sa)) swap(s.p1, s.p2);
  if (!in_seg(s.p1, sa)) return false;
  if (!in_seg(s.p2, sb)) return false;
  if (!good_cut(s.p1, sa)) return false;
  if (!good_cut(s.p2, sb)) return false;
  return true;
}
int main() {
  scanf("%d", &tc);
  segment s1, s2, s3;
  while (tc--) {
    read(s1);
    read(s2);
    read(s3);
    if (ok(s3, s1, s2) || ok(s1, s2, s3) || ok(s2, s1, s3))
      printf("YES\n");
    else
      printf("NO\n");
  }
}
