#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define ui unsigned int
#define ul unsigned long long
#define ll long long
#define endl '\n'
#define f first
#define s second
#define int long long
int solvi(vector<int>& a, int n){
vector<int> dp(n+1, 1e18);
dp[0]=0;
// cout<<v2.size()<<endl;
// for(auto x:v2) cout<<x<<' ';
// cout<<endl;
// this is 100 correct for cases where ind!=-1
for(int i=1; i<=n; i++){
// if(good2[i]) dp[i]=dp[i-1];
if(i>=2){ // pair us up
dp[i]=min(dp[i], dp[i-2]+abs(a[i]-a[i-1]));
}
if(i>=3){ // can take 3
vector<int> v1={a[i], a[i-1], a[i-2]}; sort(v1.begin(), v1.end());
int med=v1[1];
dp[i]=min(dp[i], dp[i-3]+abs(a[i-2]-med)+abs(a[i-1]-med)+abs(a[i]-med));
}
// if(i>=4&&!good2[i]&&!good2[i-1]&&!good2[i-2]&&!good2[i-3]){
// vector<int> v1={a[i], a[i-1], a[i-2], a[i-3]}; sort(v1.begin(), v1.end());
// int med=v1[1];
// dp[i]=min(dp[i], dp[i-4]+abs(a[i-3]-med)+abs(a[i-2]-med)+abs(a[i-1]-med)+abs(a[i]-med));
// }
}
return dp[n];
}
void solve(){
int n; cin>>n;
int a[2*n]; for(int i=0; i<n; i++) cin>>a[i];
for(int i=n; i<2*n; i++) a[i]=a[i-n];
// int good[n]{};
// int ind=-1;
// for(int i=0; i<n; i++){
// good[i]=(a[i]==a[(i-1+n)%n]||a[i]==a[(i+1)%n]);
// if(good[i]) ind=i;
// }
// vector<int> v2; v2.pb(0);
// vector<int> good2(n+1, 0);
// if(ind!=-1){
// v2.pb(a[ind]);
// good2[1]=true;
// for(int i=(ind+1)%n; i!=ind; i=(i+1)%n){
// good2[v2.size()]=good[i];
// v2.pb(a[i]);
// }
// }
// else{
// for(int i=0; i<n; i++){
// v2.pb(a[i]);
// }
// }
// int dp[n+1]{};
int ans=1e18;
// if(ind!=-1){
// ans=solvi(v2, good2, n);
// }
// else{
// }
vector<int> v1; v1.pb(0);
for(int i=0; i<n; i++) v1.pb(a[i]);
ans=solvi(v1, n);
v1.clear();
v1.pb(0); v1.pb(a[n-1]);
for(int i=0; i<n-1; i++) v1.pb(a[i]);
ans=min(ans, solvi(v1, n));
v1.clear();
v1.pb(0); v1.pb(a[n-1]); v1.pb(a[n-2]);
for(int i=0; i<n-2; i++) v1.pb(a[i]);
ans=min(ans, solvi(v1, n));
v1.clear();
v1.pb(0); v1.pb(a[n-1]); v1.pb(a[n-2]); v1.pb(a[n-3]);
for(int i=0; i<n-3; i++) v1.pb(a[i]);
ans=min(ans, solvi(v1, n));
cout<<ans<<endl;
}
int32_t main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int t=1;
cin>>t;
while(t--)
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHVpIHVuc2lnbmVkIGludAojZGVmaW5lIHVsIHVuc2lnbmVkIGxvbmcgbG9uZwojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIGYgZmlyc3QKI2RlZmluZSBzIHNlY29uZAojZGVmaW5lIGludCBsb25nIGxvbmcKCmludCBzb2x2aSh2ZWN0b3I8aW50PiYgYSwgaW50IG4pewogICAgdmVjdG9yPGludD4gZHAobisxLCAxZTE4KTsKICAgIGRwWzBdPTA7CgogICAgLy8gY291dDw8djIuc2l6ZSgpPDxlbmRsOwogICAgLy8gZm9yKGF1dG8geDp2MikgY291dDw8eDw8JyAnOwogICAgLy8gY291dDw8ZW5kbDsKCiAgICAvLyB0aGlzIGlzIDEwMCBjb3JyZWN0IGZvciBjYXNlcyB3aGVyZSBpbmQhPS0xCiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICAvLyBpZihnb29kMltpXSkgZHBbaV09ZHBbaS0xXTsKCiAgICAgICAgaWYoaT49Mil7IC8vIHBhaXIgdXMgdXAKICAgICAgICAgICAgZHBbaV09bWluKGRwW2ldLCBkcFtpLTJdK2FicyhhW2ldLWFbaS0xXSkpOwogICAgICAgIH0KICAgICAgICBpZihpPj0zKXsgLy8gY2FuIHRha2UgMwogICAgICAgICAgICB2ZWN0b3I8aW50PiB2MT17YVtpXSwgYVtpLTFdLCBhW2ktMl19OyBzb3J0KHYxLmJlZ2luKCksIHYxLmVuZCgpKTsKICAgICAgICAgICAgaW50IG1lZD12MVsxXTsKICAgICAgICAgICAgZHBbaV09bWluKGRwW2ldLCBkcFtpLTNdK2FicyhhW2ktMl0tbWVkKSthYnMoYVtpLTFdLW1lZCkrYWJzKGFbaV0tbWVkKSk7CiAgICAgICAgfQogICAgICAgIC8vIGlmKGk+PTQmJiFnb29kMltpXSYmIWdvb2QyW2ktMV0mJiFnb29kMltpLTJdJiYhZ29vZDJbaS0zXSl7CiAgICAgICAgLy8gICAgIHZlY3RvcjxpbnQ+IHYxPXthW2ldLCBhW2ktMV0sIGFbaS0yXSwgYVtpLTNdfTsgc29ydCh2MS5iZWdpbigpLCB2MS5lbmQoKSk7CiAgICAgICAgLy8gICAgIGludCBtZWQ9djFbMV07CiAgICAgICAgLy8gICAgIGRwW2ldPW1pbihkcFtpXSwgZHBbaS00XSthYnMoYVtpLTNdLW1lZCkrYWJzKGFbaS0yXS1tZWQpK2FicyhhW2ktMV0tbWVkKSthYnMoYVtpXS1tZWQpKTsKICAgICAgICAvLyB9CiAgICB9CiAgICByZXR1cm4gZHBbbl07Cn0KCnZvaWQgc29sdmUoKXsKICAgIGludCBuOyBjaW4+Pm47CiAgICBpbnQgYVsyKm5dOyBmb3IoaW50IGk9MDsgaTxuOyBpKyspIGNpbj4+YVtpXTsKICAgIGZvcihpbnQgaT1uOyBpPDIqbjsgaSsrKSBhW2ldPWFbaS1uXTsKICAgIAogICAgLy8gaW50IGdvb2Rbbl17fTsKICAgIC8vIGludCBpbmQ9LTE7CiAgICAvLyBmb3IoaW50IGk9MDsgaTxuOyBpKyspewogICAgLy8gICAgIGdvb2RbaV09KGFbaV09PWFbKGktMStuKSVuXXx8YVtpXT09YVsoaSsxKSVuXSk7CiAgICAvLyAgICAgaWYoZ29vZFtpXSkgaW5kPWk7CiAgICAvLyB9CgogICAgLy8gdmVjdG9yPGludD4gdjI7IHYyLnBiKDApOwogICAgLy8gdmVjdG9yPGludD4gZ29vZDIobisxLCAwKTsKICAgIC8vIGlmKGluZCE9LTEpewogICAgLy8gICAgIHYyLnBiKGFbaW5kXSk7CiAgICAvLyAgICAgZ29vZDJbMV09dHJ1ZTsKICAgIC8vICAgICBmb3IoaW50IGk9KGluZCsxKSVuOyBpIT1pbmQ7IGk9KGkrMSklbil7CiAgICAvLyAgICAgICAgIGdvb2QyW3YyLnNpemUoKV09Z29vZFtpXTsKICAgIC8vICAgICAgICAgdjIucGIoYVtpXSk7CiAgICAvLyAgICAgfQogICAgLy8gfQogICAgLy8gZWxzZXsKICAgIC8vICAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspewogICAgLy8gICAgICAgICB2Mi5wYihhW2ldKTsKICAgIC8vICAgICB9CiAgICAvLyB9CiAgICAvLyBpbnQgZHBbbisxXXt9OwoKICAgIGludCBhbnM9MWUxODsKICAgIC8vIGlmKGluZCE9LTEpewogICAgLy8gICAgIGFucz1zb2x2aSh2MiwgZ29vZDIsIG4pOwogICAgLy8gfQogICAgLy8gZWxzZXsKCiAgICAvLyB9CiAgICB2ZWN0b3I8aW50PiB2MTsgdjEucGIoMCk7CiAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspIHYxLnBiKGFbaV0pOwogICAgYW5zPXNvbHZpKHYxLCBuKTsKCiAgICB2MS5jbGVhcigpOwogICAgdjEucGIoMCk7IHYxLnBiKGFbbi0xXSk7CiAgICBmb3IoaW50IGk9MDsgaTxuLTE7IGkrKykgdjEucGIoYVtpXSk7CiAgICBhbnM9bWluKGFucywgc29sdmkodjEsIG4pKTsKCiAgICB2MS5jbGVhcigpOwogICAgdjEucGIoMCk7IHYxLnBiKGFbbi0xXSk7IHYxLnBiKGFbbi0yXSk7CiAgICBmb3IoaW50IGk9MDsgaTxuLTI7IGkrKykgdjEucGIoYVtpXSk7CgogICAgYW5zPW1pbihhbnMsIHNvbHZpKHYxLCBuKSk7CgogICAgdjEuY2xlYXIoKTsKICAgIHYxLnBiKDApOyB2MS5wYihhW24tMV0pOyB2MS5wYihhW24tMl0pOyB2MS5wYihhW24tM10pOwogICAgZm9yKGludCBpPTA7IGk8bi0zOyBpKyspIHYxLnBiKGFbaV0pOwogICAgYW5zPW1pbihhbnMsIHNvbHZpKHYxLCBuKSk7CiAgICBjb3V0PDxhbnM8PGVuZGw7Cgp9CgppbnQzMl90IG1haW4oKXsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CiAgICBjaW4udGllKDApOwoKCiAgICBpbnQgdD0xOwogICAgY2luPj50OwoKICAgIHdoaWxlKHQtLSkKICAgICAgICBzb2x2ZSgpOwoKICAgIHJldHVybiAwOwp9