| hashCode() |  | 0% |  | 0% | 8 | 8 | 25 | 25 | 1 | 1 |
| equals(Object) |  | 0% |  | 0% | 20 | 20 | 29 | 29 | 1 | 1 |
| getSerializedSize() |  | 0% |  | 0% | 8 | 8 | 27 | 27 | 1 | 1 |
| writeTo(CodedOutputStream) |  | 0% |  | 0% | 7 | 7 | 14 | 14 | 1 | 1 |
| getSub1OrBuilder() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| getSub2OrBuilder() |  | 0% |  | 0% | 2 | 2 | 1 | 1 | 1 | 1 |
| parseFrom(ByteBuffer, ExtensionRegistryLite) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseFrom(ByteString, ExtensionRegistryLite) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseFrom(byte[], ExtensionRegistryLite) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseFrom(InputStream, ExtensionRegistryLite) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| parseDelimitedFrom(InputStream, ExtensionRegistryLite) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| parseFrom(CodedInputStream, ExtensionRegistryLite) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| toBuilder() |   | 61% |   | 50% | 1 | 2 | 0 | 2 | 0 | 1 |
| getRep(int) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseFrom(ByteBuffer) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseFrom(ByteString) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseFrom(byte[]) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parseFrom(InputStream) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| parseDelimitedFrom(InputStream) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| parseFrom(CodedInputStream) |  | 0% | | n/a | 1 | 1 | 2 | 2 | 1 | 1 |
| newBuilder(TestFull.SubMess) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| isInitialized() |   | 84% |   | 66% | 2 | 4 | 0 | 8 | 0 | 1 |
| newInstance(GeneratedMessageV3.UnusedPrivateParameter) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getRepCount() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getSub1() |   | 75% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| getSub2() |   | 75% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| getDescriptor() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| newBuilderForType() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| parser() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getParserForType() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| getDefaultInstanceForType() |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| TestFull.SubMess() |  | 100% | | n/a | 0 | 1 | 0 | 9 | 0 | 1 |
| TestFull.SubMess(GeneratedMessageV3.Builder) |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| hasTest() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| hasVal1() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| hasVal2() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| hasSub1() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| hasSub2() |  | 100% |  | 100% | 0 | 2 | 0 | 1 | 0 | 1 |
| static {...} |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| newBuilderForType(GeneratedMessageV3.BuilderParent) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| internalGetFieldAccessorTable() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getTest() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getVal1() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getVal2() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getRepList() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| newBuilder() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDefaultInstance() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |