// pair file age in total until final date (days)
int ageTotal = bichoPairFileDAO.calculePairFileDaysAge( fileFile.getFileName(), fileFile.getFileName2(), null, endDate, true);
boolean samePackage = PathUtils.isSameFullPath(fileFile.getFileName(), fileFile.getFileName2());
AuxFileFileMetrics auxFileFileMetrics = new AuxFileFileMetrics(
fileFile.getFileName(), fileFile.getFileName2(), BooleanUtils.toInteger(samePackage),
// barycenterSum, barycenterAvg, barycenterMax,
betweennessSum, betweennessAvg, betweennessMax,
closenessSum, closenessAvg, closenessMax,
degreeSum, degreeAvg, degreeMax,
eigenvectorSum, eigenvectorAvg, eigenvectorMax,
egoBetweennessSum, egoBetweennessAvg, egoBetweennessMax,
egoSizeSum, egoSizeAvg, egoSizeMax,
egoTiesSum, egoTiesAvg, egoTiesMax,
// egoPairsSum, egoPairsAvg, egoPairsMax,
egoDensitySum, egoDensityAvg, egoDensityMax,
efficiencySum, efficiencyAvg, efficiencyMax,
effectiveSizeSum, effectiveSizeAvg, effectiveSizeMax,
constraintSum, constraintAvg, constraintMax,
hierarchySum, hierarchyAvg, hierarchyMax,
pairFileGlobal.getSize(), pairFileGlobal.getTies(),
pairFileGlobal.getDensity(), pairFileGlobal.getDiameter(),
devCommitsSum, devCommitsAvg, devCommitsMax,
ownershipSum, ownershipAvg, ownershipMax,
majorContributors, minorContributors,
ownerExperience, ownerExperience2,
cummulativeOwnerExperience, cummulativeOwnerExperience2,
committers, distinctCommitters, commits,
distinctCommentersCount, commentsSum, wordiness,
codeChurn, codeChurn2, codeChurnAvg,
pairFileCodeChurn.getAdditionsNormalized(), pairFileCodeChurn.getDeletionsNormalized(), pairFileCodeChurn.getChanges(),
ageRelease, ageTotal, updates, futureUpdates
);
// apriori /////////////////////////////////////////////////////////
Long fileNumberOfPullrequestOfPairFuture
= calculeNumberOfIssues(issueFileMap, auxFileFileMetrics.getFile(), bichoFileDAO, futureBeginDate, futureEndDate);
Long file2NumberOfPullrequestOfPairFuture
= calculeNumberOfIssues(issueFileMap, auxFileFileMetrics.getFile2(), bichoFileDAO, futureBeginDate, futureEndDate);
auxFileFileMetrics.addMetrics(fileNumberOfPullrequestOfPairFuture, file2NumberOfPullrequestOfPairFuture, numberOfAllPullrequestFuture);
Double supportFile = fileNumberOfPullrequestOfPairFuture.doubleValue() / numberOfAllPullrequestFuture.doubleValue();
Double supportFile2 = file2NumberOfPullrequestOfPairFuture.doubleValue() / numberOfAllPullrequestFuture.doubleValue();
Double supportPairFile = futureUpdates.doubleValue() / numberOfAllPullrequestFuture.doubleValue();
Double confidence = supportFile == 0 ? 0d : supportPairFile / supportFile;
Double confidence2 = supportFile2 == 0 ? 0d : supportPairFile / supportFile2;
Double lift = supportFile * supportFile2 == 0 ? 0d : supportPairFile / (supportFile * supportFile2);
Double conviction = 1 - confidence == 0 ? 0d : (1 - supportFile) / (1 - confidence);
Double conviction2 = 1 - confidence2 == 0 ? 0d : (1 - supportFile2) / (1 - confidence2);
auxFileFileMetrics.addMetrics(
supportFile, supportFile2, supportPairFile,
confidence, confidence2,
lift,
conviction, conviction2
);