#include <bits/stdc++.h>

using namespace std;
struct asd {
    int parnih = 0, neparnih = 0;
};

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    int t;
    cin >> t;
    resenje:
    while(t--) {
        int n, a[30001], b[30001];
        unordered_map<int, asd> vrA, vrB;
        bool sol = true;
        cin >> n;
        for(int i = 0; i < n; i++) {
            cin >> a[i];
            int p = 0, np = 0;
            if(a[i] > 0) {
                if(i % 2 == 0) p++;
                else np++;
            }
            else if(a[i] < 0) {
                if(i % 2 == 0) np++;
                else p++;
            }
            else {
                p++;
                np++;
            }
            vrA[abs(a[i])].parnih += p;
            vrA[abs(a[i])].neparnih += np;
        }
        for(int i = 0; i < n; i++) {
            cin >> b[i];
            int p = 0, np = 0;
            if(b[i] > 0) {
                if(i % 2 == 0) p++;
                else np++;
            }
            else if(b[i] < 0) {
                if(i % 2 == 0) np++;
                else p++;
            }
            else {
                p++;
                np++;
            }
            if(p) {
                if(vrA[abs(b[i])].parnih == 0) sol = false;
                else vrA[abs(b[i])].parnih--;
            }
            if(np) {
                if(vrA[abs(b[i])].neparnih == 0) sol = false;
                else vrA[abs(b[i])].neparnih--;
            }
        }
        cout << (sol ? "DA" : "NE") << endl;
    }
}