In my town ,there live a coder named Chef . He is a cool programmer . One day , he participate in a programming contest ,the contest give him only one problem . If he can’t solve the problem ,the problem setter will kill him . But the round allow you to help Chef. Can you save the life of Chef from problem setter ? :p
You are given two point of a straightline in X and Y axis and they are A(x1 , y1) and B(x2 ,y2) . Problem setter will give you another point C(x3 , y3) . If C exist in AB straightline ,then print “YES” . Otherwise ,print “NO” in first line and print the minimum distance from C to AB straightline in second line .
Please , save the life of Chef .
Note : It is not possible that A and B point is similar .

-----Input:-----
The first line of the input contains a single integer t (1≤t≤100) — the number of test cases .
Each test case starts with four integers( x1, y1 , x2 , y2 ) in first line .
Next line contains a single number q ,the number of queries . Each query contains two integers ( x3 ,y3 )

-----Output:-----
Print , q number of “YES” or “NO” (as it mentioned above) in each test case .For every test case , print “Test case : i ” ( 1<= i <=T )

-----Constraints-----
-1000 <=  x1 , y1 , x2 , y2 , x3 , y3 <= 1000

-----Sample Input:-----
2
3  5  6  5
2
4  5
6  8
3  4  7  10
1
7  4

-----Sample Output:-----
Test case : 1
YES
NO
3.000000
Test case : 2
NO
3.328201

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = 'from sys import stdin\nfrom math import ceil, gcd\n\n# Input data\n#stdin = open("input", "r")\n\n\ndef func():\n\n return\nt = int(stdin.readline())\nfor _ in range(t):\n x1, y1, x2, y2 = list(map(int, stdin.readline().split()))\n print("Test case : {}".format(_ + 1))\n for i in range(int(stdin.readline())):\n  x, y = list(map(int, stdin.readline().split()))\n  if x1 == x2:\n   if x == x1:\n    print("YES")\n   else:\n    print("NO")\n    d = abs(x - x1)\n    d = str(d) + \'.000000\'\n    print(d)\n  else:\n   m = (y2 - y1) / (x2 - x1)\n   c = y1 - (m * x1)\n   if y == (m * x) + c:\n    print("YES")\n   else:\n    print("NO")\n    d = abs(y - (m * x) - c) / ((1 + m**2)**0.5)\n    d = str(round(d, 6))\n    for i in range(len(d)):\n     if d[i] == \'.\':\n      pos = i\n      break\n    if len(d) - pos - 1 == 6:\n     print(d)\n    else:\n     d += \'0\' * (7 - len(d) + pos)\n     print(d)\n'
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 14029