package main
import (
"bufio"
"fmt"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
var T int
if _, err := fmt.Fscan(in, &T); err != nil {
return
}
for t := 0; t < T; t++ {
var s, tStr string
fmt.Fscan(in, &s, &tStr)
n := len(s)
nxt := make([][26]int, n+1)
for c := 0; c < 26; c++ {
nxt[n][c] = n
}
for i := n - 1; i >= 0; i-- {
for c := 0; c < 26; c++ {
nxt[i][c] = nxt[i+1][c]
}
nxt[i][s[i]-'a'] = i
}
m := len(tStr)
possible := false
dp := make([][]int, m+1)
for i := 0; i <= m; i++ {
dp[i] = make([]int, m+1)
}
for k := 0; k <= m; k++ {
for i := 0; i <= k; i++ {
for j := 0; j <= m-k; j++ {
dp[i][j] = n + 1
}
}
dp[0][0] = 0
for i := 0; i <= k; i++ {
for j := 0; j <= m-k; j++ {
if dp[i][j] >= n {
continue
}
if i < k {
p := nxt[dp[i][j]][tStr[i]-'a']
if p < n {
if dp[i+1][j] > p+1 {
dp[i+1][j] = p + 1
}
}
}
if j < m-k {
p := nxt[dp[i][j]][tStr[k+j]-'a']
if p < n {
if dp[i][j+1] > p+1 {
dp[i][j+1] = p + 1
}
}
}
}
}
if dp[k][m-k] <= n {
possible = true
break
}
}
if possible {
fmt.Fprintln(out, "YES")
} else {
fmt.Fprintln(out, "NO")
}
}
}