#include <bits/stdc++.h>
using namespace std;
template <class T1, class T2>
void pr(const pair<T1, T2>& x);
template <class T, size_t SZ>
void pr(const array<T, SZ>& x);
template <class T>
void pr(const vector<T>& x);
template <class T>
void pr(const set<T>& x);
template <class T1, class T2>
void pr(const map<T1, T2>& x);
template <class T>
void pr(const T& x) {
  cout << x;
}
template <class Arg, class... Args>
void pr(const Arg& first, const Args&... rest) {
  pr(first);
  pr(rest...);
}
template <class T1, class T2>
void pr(const pair<T1, T2>& x) {
  pr("{", x.first, ", ", x.second, "}");
}
template <class T>
void prContain(const T& x) {
  pr("{");
  bool fst = 1;
  for (auto& a : x) pr(!fst ? ", " : "", a), fst = 0;
  pr("}");
}
template <class T, size_t SZ>
void pr(const array<T, SZ>& x) {
  prContain(x);
}
template <class T>
void pr(const vector<T>& x) {
  prContain(x);
}
template <class T>
void pr(const set<T>& x) {
  prContain(x);
}
template <class T1, class T2>
void pr(const map<T1, T2>& x) {
  prContain(x);
}
void ps() { pr("\n"); }
template <class Arg, class... Args>
void ps(const Arg& first, const Args&... rest) {
  pr(first, " ");
  ps(rest...);
}
template <typename T>
int remin(T& a, const T& b) {
  if (b < a) {
    a = b;
    return true;
  }
  return false;
}
template <typename T>
int remax(T& a, const T& b) {
  if (b > a) {
    a = b;
    return true;
  }
  return false;
}
int T;
int used[405];
string s, t;
int ns, nt, la;
vector<vector<int> > nxt;
bool calc(const string& a, const string& b) {
  int na = a.size(), nb = b.size();
  vector<vector<int> > dp(na + 1, vector<int>(nb + 1, 1E9));
  dp[0][0] = 0;
  for (int i = 0; i <= na; ++i) {
    for (int j = 0; j <= nb; ++j) {
      if (dp[i][j] > ns) continue;
      int len = dp[i][j];
      if (i < na && nxt[len][a[i] - 'a'] < 1E9) {
        remin(dp[i + 1][j], nxt[len][a[i] - 'a'] + 1);
      }
      if (j < nb && nxt[len][b[j] - 'a'] < 1E9) {
        remin(dp[i][j + 1], nxt[len][b[j] - 'a'] + 1);
      }
    }
  }
  return dp[na][nb] < 1E9;
}
int main(int argc, const char** argv) {
  cin >> T;
  for (int tt = 0; tt < T; ++tt) {
    cin >> s >> t;
    ns = s.size(), nt = t.size();
    bool ans = false;
    nxt.assign(ns + 1, vector<int>(26, 1E9));
    for (int i = ns - 1; i >= 0; --i) {
      nxt[i] = nxt[i + 1];
      nxt[i][s[i] - 'a'] = i;
    }
    for (int i = 0; i < nt; ++i) {
      if (calc(t.substr(0, i), t.substr(i, nt))) {
        ans = true;
        break;
      }
    }
    printf(ans ? "YES\n" : "NO\n");
  }
  return 0;
}
