去年夏天,你观看了 2012 年伦敦奥运会的所有比赛。射箭是一项有趣的运动(通过射箭击中目标),但在本题中,我们处理的是一种新型的射箭。
在这种新型射箭中,玩家拥有的箭可以穿透任何目标并射向无穷远处(同一支箭可能会击中多个目标),玩家周围会有许多目标,这些目标可能会相互交叉或重叠。
从俯视图来看,你可以将目标建模为线段,将玩家建模为原点处的一个点(点 $(0,0)$ 即为原点),同时不会有任何目标与玩家的位置相交。
你非常有兴趣计算玩家使用一支箭可以穿透的目标的期望数量,如果他向随机方向射箭(有无数个不同的方向,且每个方向被选中的概率相同)。
例如,下图解释了第一个测试样例,其中玩家位于原点,有两个目标 $T_1$(端点为 $(1,5)$ 和 $(3,3)$)以及 $T_2$(端点为 $(3,5)$ 和 $(6,2)$),你可以注意到有一个区域,玩家向该区域射箭可以穿透两个目标;有两个区域,他只能穿透一个目标;最后一个区域他将无法穿透任何目标。
注意,目标可以在其两个端点之间的任何点(包含端点)被击中。
输入格式
你的程序将在一个或多个测试用例上进行测试。输入的第一行是一个整数 $T$,表示测试用例的数量($1 \le T \le 100$)。接下来是各个测试用例,每个测试用例的第一行包含一个整数 $N$($1 \le N \le 100$),表示游戏中的目标数量。接下来的 $N$ 行,每行包含 4 个由空格分隔的整数 $X_1, Y_1, X_2, Y_2$($-100 \le X_1, Y_1, X_2, Y_2 \le 100$),表示第 $i$ 个目标的端点 $(X_1, Y_1)$ 和 $(X_2, Y_2)$。
输出格式
对于每个测试用例,请在单行上打印一个数字,表示玩家使用一支箭可以穿透的目标的期望数量,保留五位小数。
样例
输入 1
2 2 1 5 3 3 3 5 6 2 8 3 0 0 3 0 3 -3 0 -3 0 0 -3 0 -3 3 0 3 3 -3 3 -3 3 -3 -3 -3 -3 3 -3 3 -3 3 3
输出 1
0.20636 2.00000