#include <bits/stdc++.h>
using namespace std;
vector<int> NGE(vector<int>v){
vector<int>nge(v.size());
stack<int>s;
for(int i=0;i<v.size();i++){
while(!s.empty() && v[i]>v[s.top()]){
nge[s.top()]=i;
s.pop();
}
s.push(i);
}
while(!s.empty()){
nge[s.top()]=-1;
s.pop();
}
return nge;
}
vector<int> PGE(vector<int>v){
vector<int>pge(v.size());
stack<int>st;
for(int i=v.size()-1;i>=0;i--){
while(!st.empty() && v[i]>v[st.top()]){
pge[st.top()]=i;
st.pop();
}
st.push(i);
}
while(!st.empty()){
pge[st.top()]=-1;
st.pop();
}
return pge;
}
int main() {
// your code goes here
int t;
cin>>t;
while(t--){
int n;
cin>>n;
vector<int>v(n);
for(int i=0;i<n;i++){
cin>>v[i];
}
int sum=0;
vector<int> nge=NGE(v);
vector<int> pge=PGE(v);
for(int i=0;i<n;i++){
int id1=pge[i]==-1?0:pge[i]+1;
int id2=nge[i]==-1?n-1:nge[i]-1;
sum+=(abs(id1-i)+1)*(abs(i-id2)+1)*v[i];
}
cout<<sum<<endl;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2ZWN0b3I8aW50PiBOR0UodmVjdG9yPGludD52KXsKICAgIHZlY3RvcjxpbnQ+bmdlKHYuc2l6ZSgpKTsKICAgIHN0YWNrPGludD5zOwoJZm9yKGludCBpPTA7aTx2LnNpemUoKTtpKyspewoJICAgIHdoaWxlKCFzLmVtcHR5KCkgJiYgdltpXT52W3MudG9wKCldKXsKCSAgICAgICAgbmdlW3MudG9wKCldPWk7CgkgICAgICAgIHMucG9wKCk7CgkgICAgfQoJICAgIHMucHVzaChpKTsKCX0KCXdoaWxlKCFzLmVtcHR5KCkpewoJICAgIG5nZVtzLnRvcCgpXT0tMTsKCSAgICBzLnBvcCgpOwoJfQoJcmV0dXJuIG5nZTsKfQp2ZWN0b3I8aW50PiBQR0UodmVjdG9yPGludD52KXsKICAgIHZlY3RvcjxpbnQ+cGdlKHYuc2l6ZSgpKTsKICAgIHN0YWNrPGludD5zdDsKICAgIGZvcihpbnQgaT12LnNpemUoKS0xO2k+PTA7aS0tKXsKICAgICAgICB3aGlsZSghc3QuZW1wdHkoKSAmJiB2W2ldPnZbc3QudG9wKCldKXsKICAgICAgICAgICAgcGdlW3N0LnRvcCgpXT1pOwogICAgICAgICAgICBzdC5wb3AoKTsKICAgICAgICB9CiAgICAgICAgc3QucHVzaChpKTsKICAgIH0KICAgIHdoaWxlKCFzdC5lbXB0eSgpKXsKICAgICAgICBwZ2Vbc3QudG9wKCldPS0xOwogICAgICAgIHN0LnBvcCgpOwogICAgfQogICAgcmV0dXJuIHBnZTsKfQoKaW50IG1haW4oKSB7CgkvLyB5b3VyIGNvZGUgZ29lcyBoZXJlCglpbnQgdDsKCWNpbj4+dDsKCXdoaWxlKHQtLSl7CgkgICAgaW50IG47CgkgICAgY2luPj5uOwoJICAgIHZlY3RvcjxpbnQ+dihuKTsKCSAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKCSAgICAgICAgY2luPj52W2ldOwoJICAgIH0KCSAgICBpbnQgc3VtPTA7CgkgICAgdmVjdG9yPGludD4gbmdlPU5HRSh2KTsKCSAgICB2ZWN0b3I8aW50PiBwZ2U9UEdFKHYpOwoJICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewoJICAgICAgICBpbnQgaWQxPXBnZVtpXT09LTE/MDpwZ2VbaV0rMTsKCSAgICAgICAgaW50IGlkMj1uZ2VbaV09PS0xP24tMTpuZ2VbaV0tMTsKCSAgICAgICAgc3VtKz0oYWJzKGlkMS1pKSsxKSooYWJzKGktaWQyKSsxKSp2W2ldOwoJICAgIH0KCSAgICBjb3V0PDxzdW08PGVuZGw7Cgl9Cn0K