#include<bits/stdc++.h>
using namespace std;
int st[200005][100];
int fd(int l,int r){
int k=(log2(r-l+1));
return max(st[l][k],st[r-(1<<k)+1][k]);
}
void run(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>st[i][0];
}
for(int k=1;;k++){
for(int i=1;i<=n-(1<<k)+1;i++){
st[i][k]=max(st[i][k-1],st[i+(1<<(k-1))][k-1]);
}
if((1<<k)>=n){
break;
}
}
int ans=0;
for(int i=1;i<=n;i++){
int ll=i,rr=i;
if(i!=1){
int l=1,r=i-1;
while(l<=r){
int m=(l+r)/2;
if(fd(m,i-1)>=st[i][0]){
l=m+1;
}else{
r=m-1;
}
// cout<<m<<" ";
}
ll=r+1;
}
if(i!=n){
int l=i+1,r=n;
while(l<=r){
int m=(l+r+1)/2;
if(fd(i+1,m)>=st[i][0]){
r=m-1;
}else{
l=m+1;
}
}
if(st[l][0]!=st[i][0]){
rr=l-1;
}
}
ans+=(rr-ll);
// cout<<ll<<rr<<"\n";
}
cout<<ans<<"\n";
}
int main(){
int t;
cin>>t;
while(t--){
run();
}
}
int st[200005][100];
int fd(int l,int r){
int k=(log2(r-l+1));
return max(st[l][k],st[r-(1<<k)+1][k]);
}
void run(){
int n;
cin>>n;
for(int i=1;i<=n;i++){
cin>>st[i][0];
}
for(int k=1;;k++){
for(int i=1;i<=n-(1<<k)+1;i++){
st[i][k]=max(st[i][k-1],st[i+(1<<(k-1))][k-1]);
}
if((1<<k)>=n){
break;
}
}
int ans=0;
for(int i=1;i<=n;i++){
int ll=i,rr=i;
if(i!=1){
int l=1,r=i-1;
while(l<=r){
int m=(l+r)/2;
if(fd(m,i-1)>=st[i][0]){
l=m+1;
}else{
r=m-1;
}
// cout<<m<<" ";
}
ll=r+1;
}
if(i!=n){
int l=i+1,r=n;
while(l<=r){
int m=(l+r+1)/2;
if(fd(i+1,m)>=st[i][0]){
r=m-1;
}else{
l=m+1;
}
}
if(st[l][0]!=st[i][0]){
rr=l-1;
}
}
ans+=(rr-ll);
// cout<<ll<<rr<<"\n";
}
cout<<ans<<"\n";
}
int main(){
int t;
cin>>t;
while(t--){
run();
}
}