var data = {lines:[ {"lineNum":" 1","line":"const std = @import(\"../std.zig\");"}, {"lineNum":" 2","line":"const math = std.math;"}, {"lineNum":" 3","line":"const expect = std.testing.expect;"}, {"lineNum":" 4","line":"const builtin = @import(\"builtin\");"}, {"lineNum":" 5","line":"const TypeId = builtin.TypeId;"}, {"lineNum":" 6","line":"const maxInt = std.math.maxInt;"}, {"lineNum":" 7","line":""}, {"lineNum":" 8","line":"/// Returns the square root of x."}, {"lineNum":" 9","line":"///"}, {"lineNum":" 10","line":"/// Special Cases:"}, {"lineNum":" 11","line":"/// - sqrt(+inf) = +inf"}, {"lineNum":" 12","line":"/// - sqrt(+-0) = +-0"}, {"lineNum":" 13","line":"/// - sqrt(x) = nan if x < 0"}, {"lineNum":" 14","line":"/// - sqrt(nan) = nan"}, {"lineNum":" 15","line":"/// TODO Decide if all this logic should be implemented directly in the @sqrt bultin function."}, {"lineNum":" 16","line":"pub fn sqrt(x: var) Sqrt(@TypeOf(x)) {","class":"linePartCov","hits":"2","order":"10208","possible_hits":"3",}, {"lineNum":" 17","line":" const T = @TypeOf(x);"}, {"lineNum":" 18","line":" switch (@typeInfo(T)) {"}, {"lineNum":" 19","line":" .Float, .ComptimeFloat => return @sqrt(x),","class":"lineCov","hits":"2","order":"10209","possible_hits":"2",}, {"lineNum":" 20","line":" .ComptimeInt => comptime {"}, {"lineNum":" 21","line":" if (x > maxInt(u128)) {"}, {"lineNum":" 22","line":" @compileError(\"sqrt not implemented for comptime_int greater than 128 bits\");"}, {"lineNum":" 23","line":" }"}, {"lineNum":" 24","line":" if (x < 0) {"}, {"lineNum":" 25","line":" @compileError(\"sqrt on negative number\");"}, {"lineNum":" 26","line":" }"}, {"lineNum":" 27","line":" return @as(T, sqrt_int(u128, x));"}, {"lineNum":" 28","line":" },"}, {"lineNum":" 29","line":" .Int => return sqrt_int(T, x),","class":"lineNoCov","hits":"0","possible_hits":"1",}, {"lineNum":" 30","line":" else => @compileError(\"sqrt not implemented for \" ++ @typeName(T)),"}, {"lineNum":" 31","line":" }"}, {"lineNum":" 32","line":"}"}, {"lineNum":" 33","line":""}, {"lineNum":" 34","line":"fn sqrt_int(comptime T: type, value: T) std.meta.Int(false, T.bit_count / 2) {","class":"linePartCov","hits":"1","order":"11927","possible_hits":"2",}, {"lineNum":" 35","line":" var op = value;","class":"linePartCov","hits":"1","order":"11928","possible_hits":"2",}, {"lineNum":" 36","line":" var res: T = 0;","class":"linePartCov","hits":"1","order":"11929","possible_hits":"2",}, {"lineNum":" 37","line":" var one: T = 1 << (T.bit_count - 2);","class":"linePartCov","hits":"1","order":"11930","possible_hits":"2",}, {"lineNum":" 38","line":""}, {"lineNum":" 39","line":" // \"one\" starts at the highest power of four <= than the argument."}, {"lineNum":" 40","line":" while (one > op) {","class":"linePartCov","hits":"2","order":"11931","possible_hits":"4",}, {"lineNum":" 41","line":" one >>= 2;","class":"linePartCov","hits":"1","order":"11932","possible_hits":"2",}, {"lineNum":" 42","line":" }"}, {"lineNum":" 43","line":""}, {"lineNum":" 44","line":" while (one != 0) {","class":"linePartCov","hits":"2","order":"11933","possible_hits":"4",}, {"lineNum":" 45","line":" if (op >= res + one) {","class":"linePartCov","hits":"3","order":"11934","possible_hits":"8",}, {"lineNum":" 46","line":" op -= res + one;","class":"linePartCov","hits":"1","order":"11935","possible_hits":"4",}, {"lineNum":" 47","line":" res += 2 * one;","class":"linePartCov","hits":"1","order":"11936","possible_hits":"2",}, {"lineNum":" 48","line":" }"}, {"lineNum":" 49","line":" res >>= 1;","class":"linePartCov","hits":"1","order":"11937","possible_hits":"2",}, {"lineNum":" 50","line":" one >>= 2;","class":"linePartCov","hits":"1","order":"11938","possible_hits":"2",}, {"lineNum":" 51","line":" }"}, {"lineNum":" 52","line":""}, {"lineNum":" 53","line":" const ResultType = std.meta.Int(false, T.bit_count / 2);"}, {"lineNum":" 54","line":" return @intCast(ResultType, res);","class":"linePartCov","hits":"2","order":"11939","possible_hits":"4",}, {"lineNum":" 55","line":"}"}, {"lineNum":" 56","line":""}, {"lineNum":" 57","line":"test \"math.sqrt_int\" {","class":"lineCov","hits":"2","order":"11925","possible_hits":"2",}, {"lineNum":" 58","line":" expect(sqrt_int(u32, 3) == 1);","class":"lineCov","hits":"1","order":"11926","possible_hits":"1",}, {"lineNum":" 59","line":" expect(sqrt_int(u32, 4) == 2);","class":"lineCov","hits":"1","order":"11940","possible_hits":"1",}, {"lineNum":" 60","line":" expect(sqrt_int(u32, 5) == 2);","class":"lineCov","hits":"1","order":"11941","possible_hits":"1",}, {"lineNum":" 61","line":" expect(sqrt_int(u32, 8) == 2);","class":"lineCov","hits":"1","order":"11942","possible_hits":"1",}, {"lineNum":" 62","line":" expect(sqrt_int(u32, 9) == 3);","class":"lineCov","hits":"1","order":"11943","possible_hits":"1",}, {"lineNum":" 63","line":" expect(sqrt_int(u32, 10) == 3);","class":"lineCov","hits":"1","order":"11944","possible_hits":"1",}, {"lineNum":" 64","line":"}"}, {"lineNum":" 65","line":""}, {"lineNum":" 66","line":"/// Returns the return type `sqrt` will return given an operand of type `T`."}, {"lineNum":" 67","line":"pub fn Sqrt(comptime T: type) type {"}, {"lineNum":" 68","line":" return switch (@typeInfo(T)) {"}, {"lineNum":" 69","line":" .Int => |int| std.meta.Int(false, int.bits / 2),"}, {"lineNum":" 70","line":" else => T,"}, {"lineNum":" 71","line":" };"}, {"lineNum":" 72","line":"}"}, ]}; var percent_low = 25;var percent_high = 75; var header = { "command" : "test", "date" : "2020-05-19 01:29:25", "instrumented" : 23, "covered" : 22,}; var merged_data = [];