#include<iostream>
#include<stack>
#include<string.h>
using namespace std;
int n,q,num,num2,pan=0,pan1=1,lk=0;
int main(){
cin>>q;
for(int i=1;i<=q;i++){
cin>>n;
int a[n+1],c[n+1];
bool pan3[n+1];
memset(pan3,0,sizeof(pan3));
stack<int>b;
for(int j=0;j<n;j++){
cin>>a[j];
}
for(int j=0;j<n;j++){
cin>>c[j];
}
for(int j=0;j<n;j++){
if(pan3[j]==0)b.push(a[j]);pan3[j]=1;
if(b.top()!=c[j]){
lk=j;
while(pan1){
lk+=1;b.push(a[lk]);pan3[lk]=1;
if(b.top()==c[j]){
pan1=0;b.pop();break;
}
if(lk>n){pan=1;pan1=0;}
}pan1=1;
if(pan==1)break;
}else{
b.pop();
}
}memset(pan3,0,sizeof(pan3));
if(pan==1){
pan=0;
cout<<"No"<<endl;
}else{
cout<<"Yes"<<endl;
}
}
return 0;
}