#include <algorithm>
#include <iomanip>
#include <iostream>
#include <vector>
#include <set>
#include <numeric>
#include <map>
#include <unordered_map>
#include <stack>
#include <queue>
using namespace std;
#define all(a) a.begin(), a.end()
#define ll long long
#define fo(i,n) for (long long i = 0; i < n; i++)
int main()
{
ll i,a,b,c,ans;
ios_base::sync_with_stdio(false);
string input;
cin.tie(0); cout.tie(0);
cin >> i;
while (i--)
{
cin >> a;
cin >> input;
b = 0;
c = 0;
for (char k : input)
{
if (k == '-')
{
b++;
}
else
{
c++;
}
}
if (b < 2 || c < 1)
{
ans = 0;
}
else
{
if (b%2 == 0)
{
ans = (b/2) * (b/2) * c;
}
else
{
ans = (b/2) * (b/2 + 1) * c;
}
}
cout << ans << '\n';
}
}
I2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxxdWV1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLCBhLmVuZCgpCiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgZm8oaSxuKSBmb3IgKGxvbmcgbG9uZyBpID0gMDsgaSA8IG47IGkrKykKaW50IG1haW4oKQp7CiAgICBsbCBpLGEsYixjLGFuczsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgc3RyaW5nIGlucHV0OwogICAgY2luLnRpZSgwKTsgY291dC50aWUoMCk7CiAgICBjaW4gPj4gaTsKICAgIHdoaWxlIChpLS0pCiAgICB7CiAgICAgICAgY2luID4+IGE7CiAgICAgICAgY2luID4+IGlucHV0OwogICAgICAgIGIgPSAwOwogICAgICAgIGMgPSAwOwogICAgICAgIGZvciAoY2hhciBrIDogaW5wdXQpCiAgICAgICAgewogICAgICAgICAgICBpZiAoayA9PSAnLScpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGIrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGMrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoYiA8IDIgfHwgYyA8IDEpCiAgICAgICAgewogICAgICAgICAgICBhbnMgPSAwOwogICAgICAgIH0KICAgICAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBpZiAoYiUyID09IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGFucyA9IChiLzIpICogKGIvMikgKiBjOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYW5zID0gKGIvMikgKiAoYi8yICsgMSkgKiBjOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgYW5zIDw8ICdcbic7CiAgICB9Cn0=