// Arup Guha
// 5/19/2021
// Solution to 2021 April USACO Silver Problem: Do You Know Your ABCs?

import java.util.*;

public class abc {
	
	final public static int SIZE = 7;

	public static int n;
	public static int[] nums;
	public static HashSet<String> ans;
	
	public static void main(String[] args) {
	
		Scanner stdin = new Scanner(System.in);
		int nC = stdin.nextInt();
		
		// Go through the cases.
		for (int loop=0; loop<nC; loop++) {
		
			// Store the values, with -1 meaning unfilled.
			n = stdin.nextInt();
			nums = new int[SIZE];
			Arrays.fill(nums, -1);
			for (int i=0; i<n; i++)
				nums[i] = stdin.nextInt();
			ans = new HashSet<String>();
				
			// a,b,c,a+b,a+c,b+c, a+b+c - is my ordering.
			// Run it!
			go(new int[7], new boolean[7], 0);
			System.out.println(ans.size());
		}
	}
	
	// Try all permutations.
	public static void go(int[] perm, boolean[] used, int k) {
		
		// Done with the permutation. Evaluate it.
		if (k == SIZE) {
			eval(perm);
			return;
		}
		
		// Try each possible unused item in slot k.
		for (int i=0; i<SIZE; i++) {
			if (used[i]) continue;
			used[i] = true;
			perm[k] = i;
			go(perm, used, k+1);
			used[i] = false;
		}
	}
	
	public static void eval(int[] perm) {
	
		// Assume this is my ordered array a,b,c,a+b,a+c,b+c,a+b+c
		int[] arr = new int[7];
		for (int i=0; i<7; i++)
			arr[i] = nums[perm[i]];
		
		// See if a isn't fixed.
		if (arr[0] == -1) {
			if (arr[3] >= 0 && arr[1] >= 0) arr[0] = arr[3] - arr[1];
			else if (arr[4] >= 0 && arr[2] >= 0) arr[0] = arr[4] - arr[2];
			else if (arr[6] >= 0 && arr[5] >= 0) arr[0] = arr[6] - arr[5];
		}
		
		// See if b isn't fixed.
		if (arr[1] == -1) {
			if (arr[3] >= 0) arr[1] = arr[3] - arr[0];
			else if (arr[5] >= 0 && arr[2] >= 0) arr[1] = arr[5] - arr[2];
			else if (arr[6] >= 0 && arr[4] >= 0) arr[1] = arr[6] - arr[4];
		}
		
		// See if c isn't fixed.
		if (arr[2] == -1) {
			if (arr[4] >= 0) arr[2] = arr[4] - arr[0];
			else if (arr[5] >= 0) arr[2] = arr[5] - arr[1];
			else if (arr[6] >= 0 && arr[3] >= 0) arr[2] = arr[6] - arr[3];
		}
		
		// These are much easier to fix!
		if (arr[3] == -1) arr[3] = arr[0] + arr[1];
		if (arr[4] == -1) arr[4] = arr[0] + arr[2];
		if (arr[5] == -1) arr[5] = arr[1] + arr[2];
		if (arr[6] == -1) arr[6] = arr[0]+arr[1]+arr[2];
		
		// All reasons this is invalid.
		if (arr[3] != arr[0] + arr[1]) return;
		if (arr[4] != arr[0] + arr[2]) return;
		if (arr[5] != arr[1] + arr[2]) return;
		if (arr[6] != arr[0] + arr[1] + arr[2]) return;
		if (arr[0] < 1) return;
		if (arr[0] > arr[1]) return;
		if (arr[1] > arr[2]) return;
		
		// Just add this result as a unique string to the Hash Set.
		ans.add(arr[0]+","+arr[1]+","+arr[2]);
	}
	
	public static void print(int[] arr) {
		for (int i=0; i<arr.length; i++)
			System.out.print(arr[i]+" ");
		System.out.println();
	}
}