In [11]:
import pandas as pd
coverage = pd.read_csv("../input/spring-petclinic/jacoco.csv")
coverage = coverage_data[['PACKAGE', 'CLASS', 'LINE_MISSED', 'LINE_COVERED']]
coverage.head()
Out[11]:
In [12]:
coverage['LINES'] = coverage.LINE_COVERED + coverage.LINE_MISSED
coverage['RATIO'] = coverage.LINE_COVERED / coverage.LINES
coverage['fqn'] = coverage.PACKAGE + "." + coverage.CLASS
coverage.head()
Out[12]:
In [13]:
import py2neo
graph = py2neo.Graph()
graph
Out[13]:
In [14]:
query="""
OPTIONAL MATCH (c:Class)-[:BELONGS_TO]->(s:Subdomain)
WHERE HAS(c.fqn)
RETURN c.fqn as fqn, s.name as subdomain
"""
classes = pd.DataFrame(graph.data(query))
classes.head()
Out[14]:
In [18]:
class_coverage = pd.merge(classes, coverage, left_on='fqn', right_on='fqn', how='left')
class_coverage['RATIO'] = class_coverage['RATIO'].fillna(0)
class_coverage.head()
Out[18]:
In [27]:
class_coverage[(class_coverage['RATIO']==0) & ~(class_coverage['fqn'].str.contains("Test"))][['fqn', 'RATIO']]
Out[27]: