/******************************************************************************
Online C++ Compiler.
Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.
*******************************************************************************/
#include <bits/stdc++.h>
using namespace std;
vector<int> adj[100005];
int A[100005][2];
long long dp1[100005];
long long dp2[100005];
void dfs(int i , int p) {
dp1[i]=dp2[i]=0;
for(auto n:adj[i]) {
if(n==p) continue;
dfs(n,i);
dp1[i]+=max(dp1[n]+abs(A[i][0]-A[n][0]),dp2[n]+abs(A[i][0]-A[n][1]));
dp2[i]+=max(dp1[n]+abs(A[i][1]-A[n][0]),dp2[n]+abs(A[i][1]-A[n][1]));
}
}
int main()
{ int t;
cin>>t;
while(t--) {
int n;
cin>>n;
for(int i =0;i<n;i++) {
cin>>A[i+1][0]>>A[i+1][1];
}
for(int i =0;i<n-1;i++) {
int u,v;
cin>>u>>v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1,-1);
cout<<max(dp1[1],dp2[1])<<endl;
}
return 0;
}