From 3367a8e878991557bf101f1dc823a8372dd1b00a Mon Sep 17 00:00:00 2001 From: Steve Gilham Date: Sat, 23 Jan 2021 16:11:50 +0000 Subject: [PATCH] Handle times and array-valued attributes --- AltCover.Engine/Json.fs | 74 ++++++++++++++++++++++++++++++++--------- Tests/OpenCover.json | 2 +- Tests/Runner.Tests.fs | 2 ++ 3 files changed, 61 insertions(+), 17 deletions(-) diff --git a/AltCover.Engine/Json.fs b/AltCover.Engine/Json.fs index 3f98af8a6..b20ba4006 100644 --- a/AltCover.Engine/Json.fs +++ b/AltCover.Engine/Json.fs @@ -22,7 +22,7 @@ module internal Json = if b2 then JsonValue v2 else JsonValue value - let simpleElementToJSon (xElement : XElement) = + let mappedElementToJSon mappings (xElement : XElement) = let element = JsonObject() if xElement.HasAttributes then @@ -30,10 +30,17 @@ module internal Json = |> Seq.iter(fun (a:XAttribute) -> if a.Name.ToString().StartsWith("{", StringComparison.Ordinal) |> not then - let attribute = simpleAttributeToValue a - element.Add (a.Name.LocalName, attribute)) + let map = mappings + |> Seq.tryFind (fun (n,_) -> n = a.Name.LocalName) + |> Option.map snd + |> Option.defaultValue simpleAttributeToValue + let attribute = map a + element.Add (a.Name.LocalName, attribute)) JsonValue element + let simpleElementToJSon (xElement : XElement) = + mappedElementToJSon [] xElement + let addMethodSeqpnts (mjson:JsonValue) (m:XContainer) = let seqpnts = JsonArray() m.Descendants(XName.Get "seqpnt") @@ -55,25 +62,58 @@ module internal Json = if methods.Count > 0 then mjson.Object.Add("method", JsonValue methods) - let addGenericGroup group item f (json:JsonValue) (x:XContainer) = + let addGenericGroup mappings group item f (json:JsonValue) (x:XContainer) = let items = JsonArray() x.Descendants(XName.Get group) |> Seq.collect (fun f -> f.Descendants(XName.Get item)) |> Seq.iter(fun x -> - let json = simpleElementToJSon x + let json = mappedElementToJSon mappings x items.Add json f json x ) if items.Count > 0 then json.Object.Add(item, JsonValue items) - let addTerminalGroup group item (json:JsonValue) (x:XContainer) = - addGenericGroup group item (fun _ _ -> ()) json x - - let addMethodPoints group item (json:JsonValue) (x:XContainer) = - addGenericGroup group item (fun point x -> - addTerminalGroup "Times" "Time" point x - addTerminalGroup "TrackedMethodRefs" "TrackedMethodRef" point x) json x + let addTerminalGroup mappings group item (json:JsonValue) (x:XContainer) = + addGenericGroup mappings group item (fun _ _ -> ()) json x + + let formatSingleTime (t:String) = + let formatTimeValue l = + let million = 1000000L + let rem = (l/million)*million + let time = DateTime(rem, DateTimeKind.Utc) + (time.ToString("yyyy-MM-dd HH:mm:ss.f", DateTimeFormatInfo.InvariantInfo) + + (l % million).ToString("D6", CultureInfo.InvariantCulture).TrimEnd('0')) + + [t] + |> Seq.map Int64.TryParse + |> Seq.filter fst + |> Seq.map (snd >> formatTimeValue >> JsonValue) + |> Seq.tryHead + |> Option.defaultValue JsonValue.Null + + let formatTimeValue (a:XAttribute) = + formatSingleTime a.Value + + let formatTimeList (a:XAttribute) = + a.Value.Split([|';'|], StringSplitOptions.RemoveEmptyEntries) + |> Seq.map formatSingleTime + |> Seq.filter (fun t -> t <> JsonValue.Null) + |> JsonArray + |> JsonValue + + let formatOffsetChain (a:XAttribute) = + a.Value.Split([|' '|], StringSplitOptions.RemoveEmptyEntries) + |> Seq.map Int32.TryParse + |> Seq.filter fst + |> Seq.map (snd >> float >> JsonValue) + |> JsonArray + |> JsonValue + + let addMethodPoints mappings group item (json:JsonValue) (x:XContainer) = + addGenericGroup mappings group item (fun point x -> + addTerminalGroup ["time", formatTimeValue ]"Times" "Time" point x + addTerminalGroup [] "TrackedMethodRefs" "TrackedMethodRef" point x) json x let addIntermediateGroup group item perItem (json:JsonValue) (x:XContainer) = let items = JsonArray() @@ -105,8 +145,8 @@ module internal Json = x.Elements(XName.Get tag) |> Seq.iter (fun s -> let js = s.Value ``method``.Object.Add(tag, JsonValue js))) - addMethodPoints "SequencePoints" "SequencePoint" ``method`` x - addMethodPoints "BranchPoints" "BranchPoint" ``method`` x + addMethodPoints [] "SequencePoints" "SequencePoint" ``method`` x + addMethodPoints ["offsetchain", formatOffsetChain ] "BranchPoints" "BranchPoint" ``method`` x ) mjson m let addModuleClasses (mjson:JsonValue) (m:XContainer) = @@ -172,9 +212,11 @@ module internal Json = |> Seq.iter (fun s -> let js = s.Value mjson.Object.Add(tag, JsonValue js))) - addTerminalGroup "Files" "File" mjson m + addTerminalGroup [] "Files" "File" mjson m addModuleClasses mjson m - addTerminalGroup "TrackedMethods" "TrackedMethod" mjson m + addTerminalGroup [ + "entry", formatTimeList + "exit", formatTimeList ] "TrackedMethods" "TrackedMethod" mjson m modules.Add mjson )) report diff --git a/Tests/OpenCover.json b/Tests/OpenCover.json index 39fb601dd..8348d49b3 100644 --- a/Tests/OpenCover.json +++ b/Tests/OpenCover.json @@ -1 +1 @@ -{"CoverageSession":{"Summary":{"numSequencePoints":28,"visitedSequencePoints":11,"numBranchPoints":21,"visitedBranchPoints":7,"sequenceCoverage":39.29,"branchCoverage":33.33,"maxCyclomaticComplexity":7,"minCyclomaticComplexity":1,"visitedClasses":4,"numClasses":7,"visitedMethods":7,"numMethods":11,"minCrapScore":1,"maxCrapScore":16.76},"Module":[{"hash":"69-07-14-0A-DA-02-C9-7E-E3-C7-EC-B3-F9-96-79-0E-A4-AF-2A-8D","Summary":{"numSequencePoints":28,"visitedSequencePoints":11,"numBranchPoints":21,"visitedBranchPoints":7,"sequenceCoverage":39.29,"branchCoverage":33.33,"maxCyclomaticComplexity":7,"minCyclomaticComplexity":1,"visitedClasses":4,"numClasses":7,"visitedMethods":7,"numMethods":11,"minCrapScore":1,"maxCrapScore":16.76},"ModulePath":"altcover/_Binaries/Sample4/Debug+AnyCPU/netcoreapp2.1/Sample4.dll","ModuleTime":"2021-01-23T09:14:51.5044232Z","ModuleName":"Sample4","File":[{"uid":1,"fullPath":"altcover/Sample4/Tests.fs"}],"Class":[{"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":1,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FullName":"Tests.Program","Method":[{"visited":false,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":0,"branchCoverage":0,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":2,"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FileRef":{"uid":1},"MethodPoint":{"vc":0,"uspid":0,"ordinal":0,"offset":2,"sl":61,"sc":16,"el":61,"ec":17,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663297","Name":"System.Int32 Tests.Program::main(System.String[])","SequencePoint":[{"vc":0,"uspid":0,"ordinal":0,"offset":2,"sl":61,"sc":16,"el":61,"ec":17,"bec":0,"bev":0,"fileid":1}]}]},{"Summary":{"numSequencePoints":8,"visitedSequencePoints":5,"numBranchPoints":7,"visitedBranchPoints":3,"sequenceCoverage":62.5,"branchCoverage":42.86,"maxCyclomaticComplexity":7,"minCyclomaticComplexity":1,"visitedClasses":1,"numClasses":1,"visitedMethods":3,"numMethods":3,"minCrapScore":1,"maxCrapScore":13.13},"FullName":"Tests.DU","Method":[{"visited":true,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":100,"branchCoverage":0,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":1,"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":1,"ordinal":0,"offset":0,"sl":49,"sc":21,"el":49,"ec":26,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663298","Name":"Tests.DU/MyUnion Tests.DU::returnFoo(System.Int32)","SequencePoint":[{"vc":1,"uspid":1,"ordinal":0,"offset":0,"sl":49,"sc":21,"el":49,"ec":26,"bec":0,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]}]},{"visited":true,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":100,"branchCoverage":0,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":1,"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":2,"ordinal":0,"offset":0,"sl":50,"sc":21,"el":50,"ec":26,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663299","Name":"Tests.DU/MyUnion Tests.DU::returnBar(System.String)","SequencePoint":[{"vc":1,"uspid":2,"ordinal":0,"offset":0,"sl":50,"sc":21,"el":50,"ec":26,"bec":0,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]}]},{"visited":true,"cyclomaticComplexity":7,"nPathComplexity":4,"sequenceCoverage":50,"branchCoverage":60,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":13.13,"Summary":{"numSequencePoints":6,"visitedSequencePoints":3,"numBranchPoints":5,"visitedBranchPoints":3,"sequenceCoverage":50,"branchCoverage":60,"maxCyclomaticComplexity":7,"minCyclomaticComplexity":7,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":13.13,"maxCrapScore":13.13},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":8,"ordinal":0,"offset":0,"sl":54,"sc":5,"el":54,"ec":37,"bec":2,"bev":0,"fileid":1},"MetadataToken":"100663300","Name":"System.Void Tests.DU::testMakeUnion()","SequencePoint":[{"vc":1,"uspid":8,"ordinal":0,"offset":0,"sl":54,"sc":5,"el":54,"ec":37,"bec":2,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":7,"ordinal":1,"offset":250,"sl":54,"sc":5,"el":54,"ec":9,"bec":0,"bev":1,"fileid":1},{"vc":1,"uspid":6,"ordinal":2,"offset":257,"sl":55,"sc":5,"el":55,"ec":39,"bec":2,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":5,"ordinal":3,"offset":517,"sl":55,"sc":5,"el":55,"ec":9,"bec":0,"bev":1,"fileid":1},{"vc":1,"uspid":4,"ordinal":4,"offset":524,"sl":56,"sc":5,"el":56,"ec":44,"bec":0,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":3,"ordinal":5,"offset":765,"sl":56,"sc":5,"el":56,"ec":9,"bec":0,"bev":0,"fileid":1}],"BranchPoint":[{"vc":1,"uspid":0,"ordinal":0,"offset":209,"sl":54,"path":0,"offsetchain":"215 211","offsetend":257,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":1,"ordinal":1,"offset":209,"sl":54,"path":1,"offsetchain":213,"offsetend":218,"fileid":1},{"vc":1,"uspid":2,"ordinal":2,"offset":475,"sl":55,"path":0,"offsetchain":"481 477","offsetend":524,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":3,"ordinal":3,"offset":475,"sl":55,"path":1,"offsetchain":479,"offsetend":484,"fileid":1}]}]},{"Summary":{"numSequencePoints":10,"visitedSequencePoints":2,"numBranchPoints":6,"visitedBranchPoints":2,"sequenceCoverage":20,"branchCoverage":33.33,"maxCyclomaticComplexity":5,"minCyclomaticComplexity":1,"visitedClasses":1,"numClasses":1,"visitedMethods":1,"numMethods":2,"minCrapScore":2,"maxCrapScore":16.76},"FullName":"Tests.DU/MyUnion","Method":[{"visited":true,"cyclomaticComplexity":5,"nPathComplexity":4,"sequenceCoverage":22.22,"branchCoverage":40,"isConstructor":false,"isStatic":false,"isGetter":false,"isSetter":false,"crapScore":16.76,"Summary":{"numSequencePoints":9,"visitedSequencePoints":2,"numBranchPoints":5,"visitedBranchPoints":2,"sequenceCoverage":22.22,"branchCoverage":40,"maxCyclomaticComplexity":5,"minCyclomaticComplexity":5,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":16.76,"maxCrapScore":16.76},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":17,"ordinal":0,"offset":0,"sl":36,"sc":9,"el":36,"ec":24,"bec":4,"bev":0,"fileid":1},"MetadataToken":"100663319","Name":"Tests.DU/MyUnion Tests.DU/MyUnion::as_bar()","SequencePoint":[{"vc":1,"uspid":17,"ordinal":0,"offset":0,"sl":36,"sc":9,"el":36,"ec":24,"bec":4,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":1,"uspid":16,"ordinal":1,"offset":54,"sl":37,"sc":20,"el":37,"ec":33,"bec":0,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":15,"ordinal":2,"offset":91,"sl":36,"sc":9,"el":36,"ec":24,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":14,"ordinal":3,"offset":108,"sl":38,"sc":20,"el":38,"ec":33,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":13,"ordinal":4,"offset":137,"sl":36,"sc":9,"el":36,"ec":24,"bec":0,"bev":1,"fileid":1},{"vc":0,"uspid":12,"ordinal":5,"offset":154,"sl":39,"sc":20,"el":39,"ec":33,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":11,"ordinal":6,"offset":183,"sl":41,"sc":16,"el":41,"ec":20,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":10,"ordinal":7,"offset":187,"sl":42,"sc":7,"el":42,"ec":11,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":9,"ordinal":8,"offset":194,"sl":42,"sc":17,"el":42,"ec":27,"bec":0,"bev":0,"fileid":1}],"BranchPoint":[{"vc":0,"uspid":4,"ordinal":0,"offset":8,"sl":36,"path":0,"offsetchain":29,"offsetend":183,"fileid":1},{"vc":1,"uspid":5,"ordinal":1,"offset":8,"sl":36,"path":1,"offsetchain":34,"offsetend":40,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":6,"ordinal":2,"offset":8,"sl":36,"path":2,"offsetchain":36,"offsetend":91,"fileid":1},{"vc":0,"uspid":7,"ordinal":3,"offset":8,"sl":36,"path":3,"offsetchain":38,"offsetend":137,"fileid":1}]},{"visited":false,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":0,"branchCoverage":0,"isConstructor":false,"isStatic":false,"isGetter":true,"isSetter":false,"crapScore":2,"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FileRef":{"uid":1},"MethodPoint":{"vc":0,"uspid":18,"ordinal":0,"offset":0,"sl":44,"sc":25,"el":44,"ec":36,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663320","Name":"Microsoft.FSharp.Core.FSharpFunc`2 Tests.DU/MyUnion::get_MyBar()","SequencePoint":[{"vc":0,"uspid":18,"ordinal":0,"offset":0,"sl":44,"sc":25,"el":44,"ec":36,"bec":0,"bev":0,"fileid":1}]}]},{"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":1,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FullName":"Tests.DU/get_MyBar@44","Method":[{"visited":false,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":0,"branchCoverage":0,"isConstructor":false,"isStatic":false,"isGetter":false,"isSetter":false,"crapScore":2,"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FileRef":{"uid":1},"MethodPoint":{"vc":0,"uspid":19,"ordinal":0,"offset":0,"sl":44,"sc":25,"el":44,"ec":36,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663340","Name":"Tests.DU/MyUnion Tests.DU/get_MyBar@44::Invoke(Microsoft.FSharp.Core.Unit)","SequencePoint":[{"vc":0,"uspid":19,"ordinal":0,"offset":0,"sl":44,"sc":25,"el":44,"ec":36,"bec":0,"bev":0,"fileid":1}]}]},{"Summary":{"numSequencePoints":2,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":1,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FullName":"Tests.DU/MyClass","Method":[{"visited":false,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":0,"branchCoverage":0,"isConstructor":true,"isStatic":false,"isGetter":false,"isSetter":false,"crapScore":2,"Summary":{"numSequencePoints":2,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FileRef":{"uid":1},"MethodPoint":{"vc":0,"uspid":21,"ordinal":0,"offset":8,"sl":47,"sc":27,"el":47,"ec":28,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663341","Name":"System.Void Tests.DU/MyClass::.ctor()","SequencePoint":[{"vc":0,"uspid":21,"ordinal":0,"offset":8,"sl":47,"sc":27,"el":47,"ec":28,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":20,"ordinal":1,"offset":15,"sl":46,"sc":8,"el":46,"ec":15,"bec":0,"bev":0,"fileid":1}]}]},{"Summary":{"numSequencePoints":5,"visitedSequencePoints":3,"numBranchPoints":4,"visitedBranchPoints":2,"sequenceCoverage":60,"branchCoverage":50,"maxCyclomaticComplexity":5,"minCyclomaticComplexity":1,"visitedClasses":1,"numClasses":1,"visitedMethods":2,"numMethods":2,"minCrapScore":1,"maxCrapScore":8.13},"FullName":"Tests.M","Method":[{"visited":true,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":100,"branchCoverage":0,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":1,"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FileRef":{"uid":1},"MethodPoint":{"vc":2,"uspid":22,"ordinal":0,"offset":0,"sl":20,"sc":21,"el":20,"ec":34,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663344","Name":"Tests.M/Thing Tests.M::makeThing(System.String)","SequencePoint":[{"vc":2,"uspid":22,"ordinal":0,"offset":0,"sl":20,"sc":21,"el":20,"ec":34,"bec":0,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":2}],"TrackedMethodRef":[{"uid":2,"vc":2}]}]},{"visited":true,"cyclomaticComplexity":5,"nPathComplexity":2,"sequenceCoverage":50,"branchCoverage":66.67,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":8.13,"Summary":{"numSequencePoints":4,"visitedSequencePoints":2,"numBranchPoints":3,"visitedBranchPoints":2,"sequenceCoverage":50,"branchCoverage":66.67,"maxCyclomaticComplexity":5,"minCyclomaticComplexity":5,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":8.13,"maxCrapScore":8.13},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":26,"ordinal":0,"offset":0,"sl":24,"sc":5,"el":24,"ec":43,"bec":2,"bev":0,"fileid":1},"MetadataToken":"100663345","Name":"System.Void Tests.M::testMakeThing()","SequencePoint":[{"vc":1,"uspid":26,"ordinal":0,"offset":0,"sl":24,"sc":5,"el":24,"ec":43,"bec":2,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":2,"vc":1}]},{"vc":0,"uspid":25,"ordinal":1,"offset":250,"sl":24,"sc":5,"el":24,"ec":9,"bec":0,"bev":1,"fileid":1},{"vc":1,"uspid":24,"ordinal":2,"offset":257,"sl":25,"sc":5,"el":25,"ec":54,"bec":0,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":2,"vc":1}]},{"vc":0,"uspid":23,"ordinal":3,"offset":568,"sl":25,"sc":5,"el":25,"ec":9,"bec":0,"bev":0,"fileid":1}],"BranchPoint":[{"vc":1,"uspid":8,"ordinal":0,"offset":209,"sl":24,"path":0,"offsetchain":"215 211","offsetend":257,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":2,"vc":1}]},{"vc":0,"uspid":9,"ordinal":1,"offset":209,"sl":24,"path":1,"offsetchain":213,"offsetend":218,"fileid":1}]}]},{"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":1,"numClasses":1,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FullName":"Tests.M/Thing","Method":[{"visited":true,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":100,"branchCoverage":0,"isConstructor":false,"isStatic":false,"isGetter":false,"isSetter":false,"crapScore":1,"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":27,"ordinal":0,"offset":0,"sl":18,"sc":27,"el":18,"ec":73,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663355","Name":"System.Byte[] Tests.M/Thing::bytes()","SequencePoint":[{"vc":1,"uspid":27,"ordinal":0,"offset":0,"sl":18,"sc":27,"el":18,"ec":73,"bec":0,"bev":0,"fileid":1,"Time":[{"time":6.3746990549E+17,"vc":1}],"TrackedMethodRef":[{"uid":2,"vc":1}]}]}]}],"TrackedMethod":[{"uid":1,"token":100663300,"name":"System.Void Tests.DU::testMakeUnion()","strategy":"[Fact]","entry":6.37469905493698E+17,"exit":6.37469905497832E+17},{"uid":2,"token":100663345,"name":"System.Void Tests.M::testMakeThing()","strategy":"[Fact]","entry":6.37469905493698E+17,"exit":6.37469905496984E+17}]}]}} \ No newline at end of file +{"CoverageSession":{"Summary":{"numSequencePoints":28,"visitedSequencePoints":11,"numBranchPoints":21,"visitedBranchPoints":7,"sequenceCoverage":39.29,"branchCoverage":33.33,"maxCyclomaticComplexity":7,"minCyclomaticComplexity":1,"visitedClasses":4,"numClasses":7,"visitedMethods":7,"numMethods":11,"minCrapScore":1,"maxCrapScore":16.76},"Module":[{"hash":"69-07-14-0A-DA-02-C9-7E-E3-C7-EC-B3-F9-96-79-0E-A4-AF-2A-8D","Summary":{"numSequencePoints":28,"visitedSequencePoints":11,"numBranchPoints":21,"visitedBranchPoints":7,"sequenceCoverage":39.29,"branchCoverage":33.33,"maxCyclomaticComplexity":7,"minCyclomaticComplexity":1,"visitedClasses":4,"numClasses":7,"visitedMethods":7,"numMethods":11,"minCrapScore":1,"maxCrapScore":16.76},"ModulePath":"altcover/_Binaries/Sample4/Debug+AnyCPU/netcoreapp2.1/Sample4.dll","ModuleTime":"2021-01-23T09:14:51.5044232Z","ModuleName":"Sample4","File":[{"uid":1,"fullPath":"altcover/Sample4/Tests.fs"}],"Class":[{"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":1,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FullName":"Tests.Program","Method":[{"visited":false,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":0,"branchCoverage":0,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":2,"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FileRef":{"uid":1},"MethodPoint":{"vc":0,"uspid":0,"ordinal":0,"offset":2,"sl":61,"sc":16,"el":61,"ec":17,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663297","Name":"System.Int32 Tests.Program::main(System.String[])","SequencePoint":[{"vc":0,"uspid":0,"ordinal":0,"offset":2,"sl":61,"sc":16,"el":61,"ec":17,"bec":0,"bev":0,"fileid":1}]}]},{"Summary":{"numSequencePoints":8,"visitedSequencePoints":5,"numBranchPoints":7,"visitedBranchPoints":3,"sequenceCoverage":62.5,"branchCoverage":42.86,"maxCyclomaticComplexity":7,"minCyclomaticComplexity":1,"visitedClasses":1,"numClasses":1,"visitedMethods":3,"numMethods":3,"minCrapScore":1,"maxCrapScore":13.13},"FullName":"Tests.DU","Method":[{"visited":true,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":100,"branchCoverage":0,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":1,"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":1,"ordinal":0,"offset":0,"sl":49,"sc":21,"el":49,"ec":26,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663298","Name":"Tests.DU/MyUnion Tests.DU::returnFoo(System.Int32)","SequencePoint":[{"vc":1,"uspid":1,"ordinal":0,"offset":0,"sl":49,"sc":21,"el":49,"ec":26,"bec":0,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]}]},{"visited":true,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":100,"branchCoverage":0,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":1,"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":2,"ordinal":0,"offset":0,"sl":50,"sc":21,"el":50,"ec":26,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663299","Name":"Tests.DU/MyUnion Tests.DU::returnBar(System.String)","SequencePoint":[{"vc":1,"uspid":2,"ordinal":0,"offset":0,"sl":50,"sc":21,"el":50,"ec":26,"bec":0,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]}]},{"visited":true,"cyclomaticComplexity":7,"nPathComplexity":4,"sequenceCoverage":50,"branchCoverage":60,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":13.13,"Summary":{"numSequencePoints":6,"visitedSequencePoints":3,"numBranchPoints":5,"visitedBranchPoints":3,"sequenceCoverage":50,"branchCoverage":60,"maxCyclomaticComplexity":7,"minCyclomaticComplexity":7,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":13.13,"maxCrapScore":13.13},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":8,"ordinal":0,"offset":0,"sl":54,"sc":5,"el":54,"ec":37,"bec":2,"bev":0,"fileid":1},"MetadataToken":"100663300","Name":"System.Void Tests.DU::testMakeUnion()","SequencePoint":[{"vc":1,"uspid":8,"ordinal":0,"offset":0,"sl":54,"sc":5,"el":54,"ec":37,"bec":2,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":7,"ordinal":1,"offset":250,"sl":54,"sc":5,"el":54,"ec":9,"bec":0,"bev":1,"fileid":1},{"vc":1,"uspid":6,"ordinal":2,"offset":257,"sl":55,"sc":5,"el":55,"ec":39,"bec":2,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":5,"ordinal":3,"offset":517,"sl":55,"sc":5,"el":55,"ec":9,"bec":0,"bev":1,"fileid":1},{"vc":1,"uspid":4,"ordinal":4,"offset":524,"sl":56,"sc":5,"el":56,"ec":44,"bec":0,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":3,"ordinal":5,"offset":765,"sl":56,"sc":5,"el":56,"ec":9,"bec":0,"bev":0,"fileid":1}],"BranchPoint":[{"vc":1,"uspid":0,"ordinal":0,"offset":209,"sl":54,"path":0,"offsetchain":[215,211],"offsetend":257,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":1,"ordinal":1,"offset":209,"sl":54,"path":1,"offsetchain":[213],"offsetend":218,"fileid":1},{"vc":1,"uspid":2,"ordinal":2,"offset":475,"sl":55,"path":0,"offsetchain":[481,477],"offsetend":524,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":3,"ordinal":3,"offset":475,"sl":55,"path":1,"offsetchain":[479],"offsetend":484,"fileid":1}]}]},{"Summary":{"numSequencePoints":10,"visitedSequencePoints":2,"numBranchPoints":6,"visitedBranchPoints":2,"sequenceCoverage":20,"branchCoverage":33.33,"maxCyclomaticComplexity":5,"minCyclomaticComplexity":1,"visitedClasses":1,"numClasses":1,"visitedMethods":1,"numMethods":2,"minCrapScore":2,"maxCrapScore":16.76},"FullName":"Tests.DU/MyUnion","Method":[{"visited":true,"cyclomaticComplexity":5,"nPathComplexity":4,"sequenceCoverage":22.22,"branchCoverage":40,"isConstructor":false,"isStatic":false,"isGetter":false,"isSetter":false,"crapScore":16.76,"Summary":{"numSequencePoints":9,"visitedSequencePoints":2,"numBranchPoints":5,"visitedBranchPoints":2,"sequenceCoverage":22.22,"branchCoverage":40,"maxCyclomaticComplexity":5,"minCyclomaticComplexity":5,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":16.76,"maxCrapScore":16.76},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":17,"ordinal":0,"offset":0,"sl":36,"sc":9,"el":36,"ec":24,"bec":4,"bev":0,"fileid":1},"MetadataToken":"100663319","Name":"Tests.DU/MyUnion Tests.DU/MyUnion::as_bar()","SequencePoint":[{"vc":1,"uspid":17,"ordinal":0,"offset":0,"sl":36,"sc":9,"el":36,"ec":24,"bec":4,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":1,"uspid":16,"ordinal":1,"offset":54,"sl":37,"sc":20,"el":37,"ec":33,"bec":0,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":15,"ordinal":2,"offset":91,"sl":36,"sc":9,"el":36,"ec":24,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":14,"ordinal":3,"offset":108,"sl":38,"sc":20,"el":38,"ec":33,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":13,"ordinal":4,"offset":137,"sl":36,"sc":9,"el":36,"ec":24,"bec":0,"bev":1,"fileid":1},{"vc":0,"uspid":12,"ordinal":5,"offset":154,"sl":39,"sc":20,"el":39,"ec":33,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":11,"ordinal":6,"offset":183,"sl":41,"sc":16,"el":41,"ec":20,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":10,"ordinal":7,"offset":187,"sl":42,"sc":7,"el":42,"ec":11,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":9,"ordinal":8,"offset":194,"sl":42,"sc":17,"el":42,"ec":27,"bec":0,"bev":0,"fileid":1}],"BranchPoint":[{"vc":0,"uspid":4,"ordinal":0,"offset":8,"sl":36,"path":0,"offsetchain":[29],"offsetend":183,"fileid":1},{"vc":1,"uspid":5,"ordinal":1,"offset":8,"sl":36,"path":1,"offsetchain":[34],"offsetend":40,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":1,"vc":1}]},{"vc":0,"uspid":6,"ordinal":2,"offset":8,"sl":36,"path":2,"offsetchain":[36],"offsetend":91,"fileid":1},{"vc":0,"uspid":7,"ordinal":3,"offset":8,"sl":36,"path":3,"offsetchain":[38],"offsetend":137,"fileid":1}]},{"visited":false,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":0,"branchCoverage":0,"isConstructor":false,"isStatic":false,"isGetter":true,"isSetter":false,"crapScore":2,"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FileRef":{"uid":1},"MethodPoint":{"vc":0,"uspid":18,"ordinal":0,"offset":0,"sl":44,"sc":25,"el":44,"ec":36,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663320","Name":"Microsoft.FSharp.Core.FSharpFunc`2 Tests.DU/MyUnion::get_MyBar()","SequencePoint":[{"vc":0,"uspid":18,"ordinal":0,"offset":0,"sl":44,"sc":25,"el":44,"ec":36,"bec":0,"bev":0,"fileid":1}]}]},{"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":1,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FullName":"Tests.DU/get_MyBar@44","Method":[{"visited":false,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":0,"branchCoverage":0,"isConstructor":false,"isStatic":false,"isGetter":false,"isSetter":false,"crapScore":2,"Summary":{"numSequencePoints":1,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FileRef":{"uid":1},"MethodPoint":{"vc":0,"uspid":19,"ordinal":0,"offset":0,"sl":44,"sc":25,"el":44,"ec":36,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663340","Name":"Tests.DU/MyUnion Tests.DU/get_MyBar@44::Invoke(Microsoft.FSharp.Core.Unit)","SequencePoint":[{"vc":0,"uspid":19,"ordinal":0,"offset":0,"sl":44,"sc":25,"el":44,"ec":36,"bec":0,"bev":0,"fileid":1}]}]},{"Summary":{"numSequencePoints":2,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":1,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FullName":"Tests.DU/MyClass","Method":[{"visited":false,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":0,"branchCoverage":0,"isConstructor":true,"isStatic":false,"isGetter":false,"isSetter":false,"crapScore":2,"Summary":{"numSequencePoints":2,"visitedSequencePoints":0,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":0,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":0,"numMethods":1,"minCrapScore":2,"maxCrapScore":2},"FileRef":{"uid":1},"MethodPoint":{"vc":0,"uspid":21,"ordinal":0,"offset":8,"sl":47,"sc":27,"el":47,"ec":28,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663341","Name":"System.Void Tests.DU/MyClass::.ctor()","SequencePoint":[{"vc":0,"uspid":21,"ordinal":0,"offset":8,"sl":47,"sc":27,"el":47,"ec":28,"bec":0,"bev":0,"fileid":1},{"vc":0,"uspid":20,"ordinal":1,"offset":15,"sl":46,"sc":8,"el":46,"ec":15,"bec":0,"bev":0,"fileid":1}]}]},{"Summary":{"numSequencePoints":5,"visitedSequencePoints":3,"numBranchPoints":4,"visitedBranchPoints":2,"sequenceCoverage":60,"branchCoverage":50,"maxCyclomaticComplexity":5,"minCyclomaticComplexity":1,"visitedClasses":1,"numClasses":1,"visitedMethods":2,"numMethods":2,"minCrapScore":1,"maxCrapScore":8.13},"FullName":"Tests.M","Method":[{"visited":true,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":100,"branchCoverage":0,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":1,"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FileRef":{"uid":1},"MethodPoint":{"vc":2,"uspid":22,"ordinal":0,"offset":0,"sl":20,"sc":21,"el":20,"ec":34,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663344","Name":"Tests.M/Thing Tests.M::makeThing(System.String)","SequencePoint":[{"vc":2,"uspid":22,"ordinal":0,"offset":0,"sl":20,"sc":21,"el":20,"ec":34,"bec":0,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":2}],"TrackedMethodRef":[{"uid":2,"vc":2}]}]},{"visited":true,"cyclomaticComplexity":5,"nPathComplexity":2,"sequenceCoverage":50,"branchCoverage":66.67,"isConstructor":false,"isStatic":true,"isGetter":false,"isSetter":false,"crapScore":8.13,"Summary":{"numSequencePoints":4,"visitedSequencePoints":2,"numBranchPoints":3,"visitedBranchPoints":2,"sequenceCoverage":50,"branchCoverage":66.67,"maxCyclomaticComplexity":5,"minCyclomaticComplexity":5,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":8.13,"maxCrapScore":8.13},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":26,"ordinal":0,"offset":0,"sl":24,"sc":5,"el":24,"ec":43,"bec":2,"bev":0,"fileid":1},"MetadataToken":"100663345","Name":"System.Void Tests.M::testMakeThing()","SequencePoint":[{"vc":1,"uspid":26,"ordinal":0,"offset":0,"sl":24,"sc":5,"el":24,"ec":43,"bec":2,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":2,"vc":1}]},{"vc":0,"uspid":25,"ordinal":1,"offset":250,"sl":24,"sc":5,"el":24,"ec":9,"bec":0,"bev":1,"fileid":1},{"vc":1,"uspid":24,"ordinal":2,"offset":257,"sl":25,"sc":5,"el":25,"ec":54,"bec":0,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":2,"vc":1}]},{"vc":0,"uspid":23,"ordinal":3,"offset":568,"sl":25,"sc":5,"el":25,"ec":9,"bec":0,"bev":0,"fileid":1}],"BranchPoint":[{"vc":1,"uspid":8,"ordinal":0,"offset":209,"sl":24,"path":0,"offsetchain":[215,211],"offsetend":257,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":2,"vc":1}]},{"vc":0,"uspid":9,"ordinal":1,"offset":209,"sl":24,"path":1,"offsetchain":[213],"offsetend":218,"fileid":1}]}]},{"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":1,"numClasses":1,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FullName":"Tests.M/Thing","Method":[{"visited":true,"cyclomaticComplexity":1,"nPathComplexity":0,"sequenceCoverage":100,"branchCoverage":0,"isConstructor":false,"isStatic":false,"isGetter":false,"isSetter":false,"crapScore":1,"Summary":{"numSequencePoints":1,"visitedSequencePoints":1,"numBranchPoints":1,"visitedBranchPoints":0,"sequenceCoverage":100,"branchCoverage":0,"maxCyclomaticComplexity":1,"minCyclomaticComplexity":1,"visitedClasses":0,"numClasses":0,"visitedMethods":1,"numMethods":1,"minCrapScore":1,"maxCrapScore":1},"FileRef":{"uid":1},"MethodPoint":{"vc":1,"uspid":27,"ordinal":0,"offset":0,"sl":18,"sc":27,"el":18,"ec":73,"bec":0,"bev":0,"fileid":1},"MetadataToken":"100663355","Name":"System.Byte[] Tests.M/Thing::bytes()","SequencePoint":[{"vc":1,"uspid":27,"ordinal":0,"offset":0,"sl":18,"sc":27,"el":18,"ec":73,"bec":0,"bev":0,"fileid":1,"Time":[{"time":"2021-01-23 09:22:29.0","vc":1}],"TrackedMethodRef":[{"uid":2,"vc":1}]}]}]}],"TrackedMethod":[{"uid":1,"token":100663300,"name":"System.Void Tests.DU::testMakeUnion()","strategy":"[Fact]","entry":["2021-01-23 09:22:29.3698198"],"exit":["2021-01-23 09:22:29.7831612"]},{"uid":2,"token":100663345,"name":"System.Void Tests.M::testMakeThing()","strategy":"[Fact]","entry":["2021-01-23 09:22:29.3698007"],"exit":["2021-01-23 09:22:29.6983903"]}]}]}} \ No newline at end of file diff --git a/Tests/Runner.Tests.fs b/Tests/Runner.Tests.fs index f2d7d228c..bec0aafb1 100644 --- a/Tests/Runner.Tests.fs +++ b/Tests/Runner.Tests.fs @@ -321,6 +321,7 @@ module AltCoverRunnerTests = use stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource2) use reader = new StreamReader(stream2) let expected = reader.ReadToEnd() + //printfn "%s" result //Assert.That // (result, Is.EqualTo expected) test <@ result = expected @> @@ -357,6 +358,7 @@ module AltCoverRunnerTests = use stream2 = Assembly.GetExecutingAssembly().GetManifestResourceStream(resource2) use reader = new StreamReader(stream2) let expected = reader.ReadToEnd() + //printfn "%s" result //Assert.That // (result, Is.EqualTo expected) test <@ result = expected @>