#include<bits/stdc++.h>
using namespace std;
int main(){
	#define int long long
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int t;
	cin>>t;
	while(t--){
		int n;
		cin>>n;
		vector<int> a(n);
		vector<int> b(n);
		for(int i=0;i<n;i++) cin>>a[i];
		for(int i=0;i<n;i++) cin>>b[i];
		bool st1 = false;
		bool st2 = true;
		int q,w;
		q = 0;
		w = 0;
		for(int i=0;i<n;i++){
			if(a[i]!=0) q++;
			if(b[i]!=0) w++;
			if(abs(a[i])!=1 || abs(b[i])!=1) st2 = false;
		}
		if(q==1 && w==1) st1 = true;
		if(st1){
			int x,y, poz1, poz2;
			for(int i=0;i<n;i++){
				if(a[i]!=0){
					x = a[i];
					poz1 = i;
					}
				if(b[i]!=0){
					y = b[i];
					poz2 = i;
				}
			}
			if(abs(poz1-poz2)%2==0 && x==y) cout<<"DA"<<endl;
			else if(abs(poz1-poz2)%2==1 && x==-y) cout<<"DA"<<endl;
			else cout<<"NE"<<endl;
			continue;
		}
		if(st2){
		int a_broj_1_par = 0;
		int a_broj_1_nepar = 0;
		int a_broj_2_par = 0;
		int a_broj_2_nepar = 0;
		
		int b_broj_1_par = 0;
		int b_broj_1_nepar = 0;
		int b_broj_2_par = 0;
		int b_broj_2_nepar = 0;
		
		int p1 = 1;
		int p2 = 1;
		for(int i=0;i<n;i++){
			p1*=a[i];
			if(i%2==0){
				if(a[i]==1) a_broj_1_par++;
				else a_broj_2_par++;
			}
			else{
				if(a[i]==1) a_broj_1_nepar++;
				else a_broj_2_nepar++;
			}
		}
		for(int i=0;i<n;i++){
			p2*=b[i];
			if(i%2==0){
				if(b[i]==1) b_broj_1_par++;
				else b_broj_2_par++;
			}
			else{
				if(b[i]==1) b_broj_1_nepar++;
				else b_broj_2_nepar++;
			}
		}
		if(p1!=p2){
			cout<<"NE"<<endl;
			continue;
		}
		bool moze = true;
		if(a_broj_1_par> (b_broj_1_par+b_broj_2_nepar)) moze = false;
		if(a_broj_1_nepar > (b_broj_1_nepar+b_broj_2_par)) moze = false;
		if(a_broj_2_par > (b_broj_2_par+b_broj_1_nepar)) moze = false;
		if(a_broj_2_nepar > (b_broj_2_nepar+b_broj_1_par)) moze = false;
		if(moze) cout<<"DA"<<endl;
		else cout<<"NE"<<endl;
		continue;
		}
		
		
		
		map<int, int> pozb;
		map<int, int> cnta;
		map<int, int> cntb;
		map<int, int> znakb;
		for(int i=0;i<n;i++){
			pozb[abs(b[i])] = i;
			cnta[a[i]]++;
			cntb[b[i]]++;
			if(b[i]==0) znakb[b[i]] = 0;
			else{
				znakb[abs(b[i])] = b[i]/abs(b[i]);
		}
		}
		bool moze = true;
		map<int, int> dist;
		for(int i=0;i<n;i++){
			if(cnta[a[i]]+cnta[-a[i]] != cntb[a[i]]+cntb[-a[i]]) moze =  false;
		}
		if(!moze){
			cout<<"NE"<<endl;
			continue;
		}
		for(int i=0;i<n;i++){
			int dist = abs(pozb[abs(a[i])]-i);
			if(dist%2==0 && znakb[abs(a[i])]==-1 && a[i]>0) moze = false;
			if(dist%2==0 && znakb[abs(a[i])]==1 && a[i]<0) moze = false; 
			if(dist%2==1 && znakb[abs(a[i])]==1 && a[i]>0) moze = false;
			if(dist%2==1 && znakb[abs(a[i])]==-1 && a[i]<0) moze = false;
		}
	//	cout<<dist[2]<<endl;
		if(!moze){
			cout<<"NE"<<endl;
			continue;
		}
		cout<<"DA"<<endl;
	}
}