description: Ezzat has an array of n integers (maybe negative). He wants to split it into two non-empty subsequences a and b, such that every element from the array belongs to exactly one subsequence, and the value of f(a) + f(b) is the maximum possible value, where f(x) is the average of the subsequence x. 
  
  A sequence x is a subsequence of a sequence y if x can be obtained from y by deletion of several (possibly, zero or all) elements.
  
  The average of a subsequence is the sum of the numbers of this subsequence divided by the size of the subsequence.
  
  For example, the average of [1,5,6] is (1+5+6)/3 = 12/3 = 4, so f([1,5,6]) = 4.
  
  Input
  
  The first line contains a single integer t (1 ≤ t ≤ 10^3)— the number of test cases. Each test case consists of two lines.
  
  The first line contains a single integer n (2 ≤ n ≤ 10^5).
  
  The second line contains n integers a_1, a_2, …, a_n (-10^9 ≤ a_i ≤ 10^9).
  
  It is guaranteed that the sum of n over all test cases does not exceed 3⋅10^5.
  
  Output
  
  For each test case, print a single value — the maximum value that Ezzat can achieve.
  
  Your answer is considered correct if its absolute or relative error does not exceed 10^{-6}.
  
  Formally, let your answer be a, and the jury's answer be b. Your answer is accepted if and only if \frac{|a - b|}{max{(1, |b|)}} ≤ 10^{-6}.
  
  Example
  
  Input
  
  
  4
  3
  3 1 2
  3
  -7 -6 -6
  3
  2 2 2
  4
  17 3 5 -3
  
  
  Output
  
  
  4.500000000
  -12.500000000
  4.000000000
  18.666666667
  
  Note
  
  In the first test case, the array is [3, 1, 2]. These are all the possible ways to split this array: 
  
    * a = [3], b = [1,2], so the value of f(a) + f(b) = 3 + 1.5 = 4.5. 
    * a = [3,1], b = [2], so the value of f(a) + f(b) = 2 + 2 = 4. 
    * a = [3,2], b = [1], so the value of f(a) + f(b) = 2.5 + 1 = 3.5. 
  
  Therefore, the maximum possible value 4.5.
  
  In the second test case, the array is [-7, -6, -6]. These are all the possible ways to split this array: 
  
    * a = [-7], b = [-6,-6], so the value of f(a) + f(b) = (-7) + (-6) = -13. 
    * a = [-7,-6], b = [-6], so the value of f(a) + f(b) = (-6.5) + (-6) = -12.5. 
  
  Therefore, the maximum possible value -12.5.
solution: '''import speech_recognition as sr
  
          r = sr.Recognizer()
          with sr.Microphone() as source:
              print("start now ..." )
              audio = r.listen(source)
              print("stoped... ")
  
              data = r.recognize_google(audio)'''
  
  def checkpallidrome(i):
      if i[0::1]==i[-1::-1]:return True
      else:return False    
  
  def uniquebid(l):
      d = {}
      m = 10000
      index = 0
      for i in range(len(l)):
          d[l[i]] = d.get(l[i],0)+1
      for i in range(len(l)):
          if m > l[i] and d[l[i]] == 1:
              m = l[i]
              index = i+1
      if index !=0:return index
      return -1                 
  
  def remove_zero(n):
      while(n%10==0):
          n=n/10
      return int(n)   
  
  def count_digit(n):
      co=0
      while(n>0):
          co = co + 1
          n = n//10
      return co
  
  def most_frequent(List): 
      return max(set(List), key = List.count) 
  
  #n,m,r,c = map(int,input().strip().split())
  #l=list(map(int,input().strip().split()))[:n]    
          
  def gcd(a,b):
      if (b == 0):
           return a
      return gcd(b, a%b)
  
  c = int(input())
  for j in range(c):
      n = int(input())
      l = list(map(int,input().strip().split()))
      m = l[0]
  
      b = 0
      for i in range(n):
          if m < l[i]:
              m = l[i]
          b = b + l[i]    
              
      print(((b-m)/(n-1))+m)
      '''        
      if c[0] == c[1] == c[2] == a:
          print(int(m))
      elif c[2]>=c[0]or c[2]>=c[1]:
          m = (a-c[0]) + ((a-c[1])*2)
          print(int(m))  
      elif c[0]>=c[1] or c[0]>=c[2]:
          m = (a - c[1]) + ((a-c[2])*2)
          print(int(m))
      elif c[1]>c[0] or c[1]>c[2]:
          m = int(((a - c[0])*2) + (a-c[2]))
          print(m)'''
      '''        
      ma = max(c)
      mi = min(c)
      if c[0] == c[1] or c[1] == c[2] or c[2] == c[0]:
          print(ma-mi)
      elif ma>c[0]>mi:
          print(ma - c[0])
      elif ma>c[1]>mi:
          print(ma - c[1])
      elif ma>c[2]>mi:
          print(ma - c[2])
             '''
      '''n = int(input())
      a = n**(1/3)
      flag = 0
      for i in range(1,n):
          b = n - (i**3)
          c = b**(1/3)
          if c**3 == b:
              flag = 1
              print("YES")
              break
      if flag == 0:
          print("NO")
                          
      '''             
      '''
      n,k = map(int,input().strip().split())
      l=list(map(int,input().strip().split()))[:n]
      co = 0
      a = 0
      l1 = l.reverse()
      if n == 1 or  k >((n-1)*(100)):print("-1")
      else:
          for i in range(n-1):
              if l[i] <= l[i+1]:
                  continue
              else:
                  while l[i]>l[i+1]:
                      co = co + 1
                      l[i+1] = l[i+1] + 1
                      a = i + 1
          if co < k:print("-1")
          else:print(a)        
      '''
      '''
      px,py = map(int,input().strip().split())
      s = input()
      (x,y) = (0,0)
      flagy = 0
      flagx = 0
      (cu,cr,cl,cd) = (0,0,0,0)
      for i in s:
          if i == "U" :
              cu = cu + 1
          elif i == "D" :
              cd = cd + 1
          elif i == "R" :
              cr = cr + 1
          elif i == "L" :
              cl = cl + 1   
      if py > 0 and cu >= py:
          py = 0
      if py < 0 and cd >= abs(py):
          py = 0
      if px > 0 and cr >= px:
          px = 0
      if px < 0 and cl >= abs(px):
          px = 0
      if (not px) and (not py):
          print("YES")
      else:print("NO")                        
      '''  
      '''
      n,d = map(int,input().strip().split())
      l=list(map(int,input().strip().split()))[:n]
      for i in range(len(l)):
          t = l[i]
          while(t>0):
              if t == d or t%d == 0 :
                  print("YES")
                  break
              t = t - d  
              if t%10 == 0:
                  print("YES")
                  break   
          if t <d:
              print("NO")
                '''
  
      '''
      n,x = map(int,input().strip().split())
      l=list(map(int,input().strip().split()))[:n]
      s = 0 
      i = 0 
      while(True):
          if l[i]%x==0:
              s = s + l[i]
              for j in range(x):
                  l.append(l[i]//x)    
              del l[0]
          elif l[i]%x != 0:
              break
      for k in l:
          s = s + k
      print(s)           
      '''
      '''n = int(input())
      a = list(map(int,input().strip().split()))[:n]
      c1 = a.count(1)
      c2 = a.count(2)
      if c1%2 ==0:
          if c2%2==0:
              print("YES")
          else:
              if (c1 - 2)>=0:
                  print("YES")  
              else:print("NO")  
      else:print("NO")    '''           
  
      '''
      s = input()
      x = int(s)
      if x > 45:
          print('-1 )
      elif x < 10:
          print(x)
      else:
          for i in range(9,0,-1):
              if x > i:
                  b = str(i) + b
                  x = x - i
              else:
                  break
          print(str(x)+b)    '''        
  
      ''' String genration
      n,k = map(int,input().strip().split())
      while(len(s)<(n-k)):
          s = s + 'c'   
          if(len(s)>=(n-k)):
              break
          s = s + 'b'  
          if(len(s)>=(n-k)):
              break
          s = s + 'a'  
      
      for i in range(k):
          s = 'a' + s
      print(s)       
  '''
      
      '''f = most_frequent(l)
      i = 0
      print(uniquebid(l))        
      while(i<n):
          if(l[i]==f):
              i=i+1
          else:
              i=i+k
              count[j] = count[j]+1
              '''      
  
  
  