#include<bits/stdc++.h>
using namespace std;
int a[100005],b[100005];
int main(){
int T;
scanf("%d",&T);
while(T--){
int n,ans=0;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
if(i>=3){
if(a[i-1]>a[i-2]&&a[i-1]>a[i])
ans++;
}
b[i] = a[i] - a[i-1];
}
//printf("%d\n",ans);
int mx = 0;
for(int i=2;i<=n-2;i++){
int ansy=0;
if(b[i-1]>0&&b[i]<0)ansy++;
if(b[i]>0&&b[i+1]<0)ansy++;
if(b[i+1]>0&&b[i+2]<0)ansy++;
if(ansy>=1){
int ansx = 0;
int tl = b[i-1],tr = b[i+1]+b[i];
if(tl>0&&tr<0)ansx++;
if(tr>0&&b[i+2]<0)ansx++;
mx = max(ansy-ansx,mx);
}
}
if(n>=3&&a[1]<a[2]&&a[2]>a[3]){
mx = max(mx,1);
}
if(n>=3&&a[n-1]>a[n]&&a[n-1]>a[n-2])
{
mx = max(mx,1);
}
printf("%d\n",ans-mx);
}
return 0;
}