Merge pull request #18 from banjiewen/null-subsets

get_statistics_subset should return well-formatted null results
diff --git a/src/bear.erl b/src/bear.erl
index 7d9eed9..3a7898f 100644
--- a/src/bear.erl
+++ b/src/bear.erl
@@ -98,30 +98,32 @@
 
 get_statistics_subset([_,_,_,_,_|_] = Values, Items) ->
     Length = length(Values),
-    if Length < ?STATS_MIN ->
-	    [I || {K,_} = I <- get_statistics([]),
-		  lists:member(K, Items) orelse K==percentiles];
-       true ->
-	    SortedValues = lists:sort(Values),
-	    Steps = calc_steps(Items),
-	    Scan_res = if Steps > 1 -> scan_values(Values);
-			  true -> []
-		       end,
-	    Scan_res2 = if Steps > 2 -> scan_values2(Values, Scan_res);
-			   true -> []
-			end,
-	    report_subset(Items, Length,
-			  SortedValues, Scan_res, Scan_res2)
-    end;
+    SortedValues = lists:sort(Values),
+    Steps = calc_steps(Items),
+    Scan_res = if Steps > 1 -> scan_values(Values);
+        true -> []
+    end,
+    Scan_res2 = if Steps > 2 -> scan_values2(Values, Scan_res);
+        true -> []
+    end,
+    report_subset(Items, Length, SortedValues, Scan_res, Scan_res2);
 get_statistics_subset(Values, Items) when is_list(Values) ->
-    [{Item, 0.0} || Item <- Items].
+    get_null_statistics_subset(Items, []).
+
+get_null_statistics_subset([{percentile, Ps}|Items], Acc) ->
+    get_null_statistics_subset(Items, [{percentile, [{P, 0.0} || P <- Ps]}|Acc]);
+get_null_statistics_subset([I|Items], Acc) ->
+    get_null_statistics_subset(Items, [{I, 0.0}|Acc]);
+get_null_statistics_subset([], Acc) ->
+    lists:reverse(Acc).
 
 calc_steps(Items) ->
-    lists:foldl(fun({I,_},Acc) ->
-			erlang:max(level(I), Acc);
-		   (I,Acc) ->
-			erlang:max(level(I), Acc)
-		end, 1, Items).
+    lists:foldl(
+        fun({I,_},Acc) ->
+            erlang:max(level(I), Acc);
+           (I,Acc) ->
+            erlang:max(level(I), Acc)
+    end, 1, Items).
 
 level(standard_deviation) -> 3;
 level(variance          ) -> 3;