#include<iostream>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#define ll long long
#define pb push_back
#define fbo(x) find_by_order(x)
#define ook(x) order_of_key(x)
using namespace std;
using namespace __gnu_pbds;
typedef tree<
int,
null_type,
less<int>,
rb_tree_tag,
tree_order_statistics_node_update>
ordered_set;
ll ans=0;
int checks(int n,vector<vector<int>>&adj)
{
for(int i=1;i<=n;i++)
{
if(adj[i].size()==n-1)
return i;
}
return -1;
}
void dfss(int c,vector<vector<int>>&adj,int p2)
{
ll sm=0,bg=0,sm1=0,bg1=0;
for(auto &i:adj[c])
{
if(i<c)
{
sm+=sm1;
sm1++;
}
else if(i>c)
{
bg+=bg1;
bg1++;
}
}
if(p2==1)
ans=bg;
else if(p2==3)
ans=sm;
else if(p2==2)
ans=sm1*bg1;
return;
}
void dfs(int u,int p,ordered_set &s,vector<vector<int>>&adj,int n,vector<bool>&vis,int p2)
{
ll ts=u-1;
ll tb=n-u;
s.insert(u);
ll ps=s.ook(u);
ll pb=(ll)s.size()-s.ook(u)-1;
ll es=0;
ll eb=0;
ll ans1=0;
for(auto&v:adj[u])
{
if(!vis[v])
{
vis[v]=true;
dfs(v,u,s,adj,n,vis,p2);
ll cs=s.ook(u);
ll cb=(ll)s.size()-s.ook(u)-1;
ll ms=max(cs-ps,0LL);
ll mb=max(cb-pb,0LL);
if(p2==1)
ans1+=(mb)*(tb-mb);
else if(p2==3)
ans1+=(ms)*(ts-ms);
else if(p2==2)
ans1+=(ms)*(tb-mb)+mb*(ts-ms);
ps=cs;
pb=cb;
es+=ms;
eb+=mb;
}
}
ll sm=ts-es;
ll bg=tb-eb;
sm=max(0LL,sm);
bg=max(0LL,bg);
if(p2==1)
ans1+=(bg)*(tb-bg);
else if(p2==3)
ans1+=(sm)*(ts-sm);
else if(p2==2)
{
ans1+=((sm)*(tb-bg)+bg*(ts-sm));
}
ans1/=2;
ans+=ans1;
}
int main()
{ ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int t;
cin>>t;
while(t--)
{
int n,p1,p2,p3,u,v;
cin>>n>>p1>>p2>>p3;
vector<vector<int>>adj(n+1);
for(int i=1;i<n;i++)
{
cin>>u>>v;
adj[u].pb(v);
adj[v].pb(u);
}
ordered_set s;
ans=0;
int c=checks(n,adj);
if(c!=-1)
{
dfss(c,adj,p2);
cout<<ans<<"\n";
continue;
}
vector<bool>vis(n+1,0);
vis[1]=true;
s.insert(1);
dfs(1,0,s,adj,n,vis,p2);
// cout<<"sasqs";
cout<<ans<<"\n";
}
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiNkZWZpbmUgbGwgbG9uZyBsb25nIAojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lICBmYm8oeCkgZmluZF9ieV9vcmRlcih4KQojZGVmaW5lICBvb2soeCkgb3JkZXJfb2Zfa2V5KHgpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwp0eXBlZGVmIHRyZWU8CmludCwKbnVsbF90eXBlLApsZXNzPGludD4sCnJiX3RyZWVfdGFnLAp0cmVlX29yZGVyX3N0YXRpc3RpY3Nfbm9kZV91cGRhdGU+Cm9yZGVyZWRfc2V0OwoKbGwgYW5zPTA7CmludCAgY2hlY2tzKGludCBuLHZlY3Rvcjx2ZWN0b3I8aW50Pj4mYWRqKQp7CiAgICAgICBmb3IoaW50IGk9MTtpPD1uO2krKykKICAgICAgIHsKICAgICAgIAkgaWYoYWRqW2ldLnNpemUoKT09bi0xKQogICAgICAgCSAJcmV0dXJuIGk7CiAgICAgICB9CiAgICAgICByZXR1cm4gLTE7Cn0KCnZvaWQgZGZzcyhpbnQgYyx2ZWN0b3I8dmVjdG9yPGludD4+JmFkaixpbnQgcDIpCnsKCWxsIHNtPTAsYmc9MCxzbTE9MCxiZzE9MDsKCWZvcihhdXRvICZpOmFkaltjXSkKCXsKCQlpZihpPGMpCgkJewoJCQlzbSs9c20xOwoJCQlzbTErKzsKCQl9CgkJZWxzZSBpZihpPmMpCgkJewoJCQliZys9YmcxOwoJCQliZzErKzsKCQl9Cgl9CglpZihwMj09MSkKCQlhbnM9Ymc7CgllbHNlIGlmKHAyPT0zKQoJCWFucz1zbTsKCWVsc2UgaWYocDI9PTIpCgkJYW5zPXNtMSpiZzE7CglyZXR1cm47Cgp9CnZvaWQgZGZzKGludCB1LGludCBwLG9yZGVyZWRfc2V0ICZzLHZlY3Rvcjx2ZWN0b3I8aW50Pj4mYWRqLGludCBuLHZlY3Rvcjxib29sPiZ2aXMsaW50IHAyKQp7CgkgIGxsIHRzPXUtMTsKCSAgbGwgdGI9bi11OwoJICBzLmluc2VydCh1KTsKCSAgbGwgcHM9cy5vb2sodSk7CgkgIGxsIHBiPShsbClzLnNpemUoKS1zLm9vayh1KS0xOwoJICBsbCBlcz0wOwoJICBsbCBlYj0wOwoJICBsbCBhbnMxPTA7CgkgIGZvcihhdXRvJnY6YWRqW3VdKQoJICB7CgkgIAlpZighdmlzW3ZdKQoJICAJewoJICAJCXZpc1t2XT10cnVlOwoJICAJCWRmcyh2LHUscyxhZGosbix2aXMscDIpOwogICAgICAgICAgICBsbCBjcz1zLm9vayh1KTsKICAgICAgICAgICAgbGwgY2I9KGxsKXMuc2l6ZSgpLXMub29rKHUpLTE7CiAgICAgICAgICAgIGxsIG1zPW1heChjcy1wcywwTEwpOwogICAgICAgICAgICBsbCBtYj1tYXgoY2ItcGIsMExMKTsKICAgICAgICAgICAgaWYocDI9PTEpCiAgICAgICAgICAgIGFuczErPShtYikqKHRiLW1iKTsKICAgICAgICAgICAgZWxzZSBpZihwMj09MykKICAgICAgICAgICAgYW5zMSs9KG1zKSoodHMtbXMpOwogICAgICAgICAgICBlbHNlIGlmKHAyPT0yKQogICAgICAgICAgICBhbnMxKz0obXMpKih0Yi1tYikrbWIqKHRzLW1zKTsgCgkgIAkKCSAgCXBzPWNzOwoJICAJcGI9Y2I7CgkgIAllcys9bXM7CgkgIAllYis9bWI7CgkgIH0KCSAgfQoJICBsbCBzbT10cy1lczsKCSAgbGwgYmc9dGItZWI7CiAgICAgIHNtPW1heCgwTEwsc20pOwogICAgICBiZz1tYXgoMExMLGJnKTsKICAgICAgaWYocDI9PTEpCiAgICAgIAlhbnMxKz0oYmcpKih0Yi1iZyk7CiAgICAgIGVsc2UgaWYocDI9PTMpCiAgICAgIAlhbnMxKz0oc20pKih0cy1zbSk7CiAgICAgIGVsc2UgaWYocDI9PTIpCiAgICAgIHsKICAgICAgCWFuczErPSgoc20pKih0Yi1iZykrYmcqKHRzLXNtKSk7CiAgICAgIH0KICAgICAgYW5zMS89MjsKICAgICAgYW5zKz1hbnMxOwogICAgICAKfQppbnQgbWFpbigpCnsgICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICAgICAgY2luLnRpZSgwKTsKICAgICAgICBjb3V0LnRpZSgwKTsKCWludCB0OwoJY2luPj50OwoJd2hpbGUodC0tKQoJewoJCWludCBuLHAxLHAyLHAzLHUsdjsKCQljaW4+Pm4+PnAxPj5wMj4+cDM7CgkJdmVjdG9yPHZlY3RvcjxpbnQ+PmFkaihuKzEpOwoJCWZvcihpbnQgaT0xO2k8bjtpKyspCgkJewoJCQljaW4+PnU+PnY7CgkJCWFkalt1XS5wYih2KTsKCQkJYWRqW3ZdLnBiKHUpOwoJCX0KCQlvcmRlcmVkX3NldCBzOwogICAgICAgIGFucz0wOwoJICAgaW50IGM9Y2hlY2tzKG4sYWRqKTsKCSAgIGlmKGMhPS0xKQoJICAgewoJICAgCSAgZGZzcyhjLGFkaixwMik7CgkgICAJICBjb3V0PDxhbnM8PCJcbiI7CgkgICAJICBjb250aW51ZTsKCSAgIH0KICAgICAgICB2ZWN0b3I8Ym9vbD52aXMobisxLDApOwogICAgICAgIHZpc1sxXT10cnVlOwogICAgICAgIHMuaW5zZXJ0KDEpOwogICAgICAgIGRmcygxLDAscyxhZGosbix2aXMscDIpOwogICAgICAvLyAgY291dDw8InNhc3FzIjsKICAgICAgIGNvdXQ8PGFuczw8IlxuIjsKCQkKCgl9CglyZXR1cm4gMDsKCn0=