#include <bits/stdc++.h>
using namespace std;
struct Point {
  long long x;
  long long y;
  Point() {}
  Point(long long a, long long b) : x(a), y(b) {}
  void init() {
    cin >> x;
    cin >> y;
  }
  bool operator!=(Point a) { return x != a.x || y != a.y; }
  Point operator+(Point a) { return Point(x + a.x, y + a.y); }
  Point operator-(Point a) { return Point(x - a.x, y - a.y); }
  long long operator*(Point a) { return x * a.y - y * a.x; }
  long long operator&(Point a) { return x * a.x + y * a.y; }
  long long len() { return x * x + y * y; }
};
struct Line {
  Point a, b;
  void init() {
    a.init();
    b.init();
  }
} Li[5];
bool check2(Point a, Point b) {
  if ((a * b == 0) && (a.len() * 25 >= b.len()) &&
      (a.len() * 25 <= b.len() * 16) && ((a & b) > 0))
    return true;
  return false;
}
bool check(Line a, Line b, Line c) {
  Point p = a.a;
  if (p != b.a) return false;
  if (((a.b - p) & (b.b - p)) >= 0 && check2(c.a - p, a.b - p) &&
      check2(c.b - p, b.b - p))
    return true;
  return false;
}
int main() {
  long long t, flag;
  cin >> t;
  while (t--) {
    flag = 0;
    for (int i = 0; i < 3; i++) Li[i].init();
    for (int i = 0; i < 2; i++) {
      for (int j = 0; j < 2; j++) {
        for (int k = 0; k < 2; k++) {
          for (int r = 0; r < 3; r++) {
            if (check(Li[r], Li[(r + 1) % 3], Li[(r + 2) % 3])) flag = 1;
          }
          swap(Li[0].a, Li[0].b);
        }
        swap(Li[1].a, Li[1].b);
      }
      swap(Li[2].a, Li[2].b);
    }
    if (flag)
      puts("YES");
    else
      puts("NO");
  }
  return 0;
}
