#include <bits/stdc++.h>
using namespace std;
int main() {
  long long int t;
  cin >> t;
  while (t--) {
    long long int n;
    cin >> n;
    long long int a[n], i, b[n], j = 0, k = 0, cnt = 0, x, y, ex1[n], ex2[n],
                                 max1 = 0, max2 = 0, h[n], mid;
    for (i = 0; i < n; i++) {
      cin >> a[i];
      h[i] = 0;
    }
    for (i = 0; i < n; i++) {
      if (a[i] == -1 && i == 0) {
        if (a[i + 1] != -1 && h[i + 1] == 0) {
          b[j++] = a[i + 1];
          h[i + 1] = 1;
        }
      } else if (a[i] == -1 && i == n - 1 && i > 0) {
        if (a[i - 1] != -1 && h[i - 1] == 0) {
          b[j++] = a[i - 1];
          h[i - 1] = 1;
        }
      } else if (a[i] == -1) {
        if (a[i - 1] != -1 && h[i - 1] == 0) {
          b[j++] = a[i - 1];
          h[i - 1] = 1;
        }
        if (a[i + 1] != -1 && h[i + 1] == 0) {
          b[j++] = a[i + 1];
          h[i + 1] = 1;
        }
      }
    }
    for (i = 0; i < j; i++) {
      cnt = cnt + b[i];
    }
    if (j > 0) {
      sort(b, b + j);
      max1 = 0;
      max2 = 0;
      x = (b[0] + b[j - 1]) / 2;
      y = (b[0] + b[j - 1]) / 2 + 1;
      for (i = 0; i < n; i++) {
        if (a[i] == -1) {
          ex1[i] = x;
          ex2[i] = y;
        } else {
          ex1[i] = a[i];
          ex2[i] = a[i];
        }
      }
      for (i = 1; i < n; i++) {
        if (abs(ex1[i] - ex1[i - 1]) > max1) {
          max1 = abs(ex1[i] - ex1[i - 1]);
        }
        if (abs(ex2[i] - ex2[i - 1]) > max2) {
          max2 = abs(ex2[i] - ex2[i - 1]);
        }
      }
      if (max1 > max2) {
        cout << max2 << " " << y << "\n";
      } else {
        cout << max1 << " " << x << "\n";
      }
    } else {
      if (a[0] != -1) {
        max1 = 0;
        for (i = 1; i < n; i++) {
          if (abs(a[i - 1] - a[i]) > max1) {
            max1 = abs(a[i - 1] - a[i]);
          }
        }
        cout << max1 << "\n";
      } else
        cout << "0 1\n";
    }
  }
}
