#include long long a[100000+100]; long long b[100000+100]; long long c[100000+100]; long long fbs(long long a) { if(a<0)return -a; else return a; } int main() { int t; scanf("%d",&t); while(t--) { int n; scanf("%d",&n); for(int i=1;i<=n;i++) { scanf("%I64d",&a[i]); } long long sum=0ll; long long maxx=0ll; int aa1,aa2; for(int i=1;i<=n-1;i++) { if(fbs(a[i+1]-a[i])>maxx) { maxx=fbs(a[i+1]-a[i]); aa1=i; aa2=i+1; } } for(int i=1;i<=n-2;i++) { if(i==aa1-1||i==aa1)continue; if(fbs(a[i]-a[i+2])>maxx) sum+=fbs(a[i]-a[i+2]); else sum+=maxx; } int cnt1=1,cnt2=1; for(int i=1;i<=n;i++) { if(i!=aa1) b[cnt1++]=a[i]; if(i!=aa2) c[cnt2++]=a[i]; } long long maxx4=0ll,maxx5=0ll; for(int i=1;i<=n-2;i++) { if(fbs(b[i+1]-b[i])>maxx4)maxx4=fbs(b[i+1]-b[i]); if(fbs(c[i+1]-c[i])>maxx5)maxx5=fbs(c[i+1]-c[i]); } long long maxx2=0ll,maxx3=0ll; for(int i=2;i<=n-1;i++) { if(fbs(a[i+1]-a[i])>maxx2)maxx2=fbs(a[i+1]-a[i]); } for(int i=1;i<=n-2;i++) { if(fbs(a[i+1]-a[i])>maxx3)maxx3=fbs(a[i+1]-a[i]); } long long sum2=0; if(aa1==1)maxx4=0; if(aa2==n)maxx5=0; printf("%I64d\n",maxx2+maxx3+sum+maxx4+maxx5); } } /* 5 5 1 1 1 1 1 5 1 2 3 4 5 8 8 7 6 5 4 3 2 1 */ /* 6 4564 8989 44 5456 48 44545 */