#include <bits/stdc++.h>
using namespace std;
bool isPrime(int n) {
  if (n <= 1) {
    return false;
  }
  for (int i = 2; i < n; i++) {
    if (n % i == 0) {
      return false;
    }
  }
  return true;
}
vector<long long int> inisum;
long long int binary(long long int target) {
  long long int end = inisum.size() - 1;
  long long int start = 0;
  long long int ans = -1;
  while (start <= end) {
    long long int mid = (start + end) / 2;
    if (inisum[mid] <= target) {
      start = mid + 1;
    } else {
      ans = mid;
      end = mid - 1;
    }
  }
  return ans;
}
bool isSum(long long int n) {
  long long int sum = 0;
  while (n != 0) {
    sum += n % 10;
    n /= 10;
  }
  if (sum == 10) {
    return true;
  } else {
    return false;
  }
}
int main(void) {
  long long int t;
  cin >> t;
  while (t--) {
    long long int x1, y1, z1;
    long long int x2, y2, z2;
    cin >> x1 >> y1 >> z1;
    cin >> x2 >> y2 >> z2;
    long long int count = 0;
    if (z1 > y2) {
      count += y2;
      z1 -= y2;
      y2 = 0;
    } else {
      count += z1;
      y2 -= z1;
      z1 = 0;
    }
    if (y1 > x2) {
      y1 -= x2;
      x2 = 0;
    } else {
      x2 -= y1;
      y1 = 0;
    }
    if (y1 > y2) {
      y1 -= y2;
      y2 = 0;
    } else {
      y2 -= y1;
      y1 = 0;
    }
    if (z1 > x2) {
      z1 -= x2;
      x2 = 0;
    } else {
      x2 -= z1;
      z1 = 0;
    }
    if (z1 > y2) {
      z1 -= y2;
      y2 = 0;
    } else {
      y2 -= z1;
      z1 = 0;
    }
    count -= min(y1, z2);
    cout << count * 2 << endl;
  }
}
