smontanari / code-forensics

A toolset for code analysis and report visualisation
384 stars 45 forks source link

Can't determine weight of collection. Assigning a value of 0 to every item. #32

Closed lsanders closed 6 years ago

lsanders commented 6 years ago

The revision history isn't functioning correctly. The log indicates:

Empty log file ... (this only occurs on first run after cleaning tmp)

Can't determine weight of collection. Assigning a value of 0 to every item.

The symptoms of this are similar to #5. And it's worth mentioning that my git repository is migrated from TFS but the history looks just fine. The codebase is large (3M) and the full history has 58k lines if there's not date predicate.

I've tried modifying the code-maat options to with -c git and -c git2 but there's no difference. I'm new to both of these but it looks like the problem isn't in code-maat.

I've also ran it on multiple environments and both linux and windows.

Would love a few pointers to help fix this problem.

lsanders commented 6 years ago

If it helps, cloning and running tests yield some failures:

**************************************************
*                    Failures                    *
**************************************************

1) TimePeriodBuilder with all parameters given returns an array of time periods
  - Expected '2015-04-15T05:00:00.000Z' to equal '2015-04-14T14:00:00.000Z'.
  - Expected '2015-05-19T04:59:59.999Z' to equal '2015-05-18T13:59:59.999Z'.

2) TimePeriodBuilder with no time split given returns an array of one time period
  - Expected '2015-04-15T05:00:00.000Z' to equal '2015-04-14T14:00:00.000Z'.
  - Expected '2015-05-20T04:59:59.999Z' to equal '2015-05-19T13:59:59.999Z'.

3) TimePeriodBuilder with no start and end date given returns an array of one time period of one day
  - Expected '2015-09-23T05:00:00.000Z' to equal '2015-09-22T14:00:00.000Z'.
  - Expected '2015-09-24T04:59:59.999Z' to equal '2015-09-23T13:59:59.999Z'.

4) TimePeriod returns an object with ISO formatted dates
  - Expected $.startDate = '2013-02-08T15:30:26.123Z' to equal '2013-02-07T22:30:26.123Z'.
  Expected $.endDate = '2014-01-19T01:10:46.456Z' to equal '2014-01-18T08:10:46.456Z'.

5) System analysis tasks system-evolution-analysis with no layer group parameter with churn analysis supported by the VCS type publishes a revisions report and a churn report with data aggregated for all files
  - Expected $[0].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[1].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  - Expected $[0].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[1].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.

6) System analysis tasks system-evolution-analysis with no layer group parameter with churn analysis not supported by the VCS type publishes a revisions report with data aggregated for all files
  - Expected $[0].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[1].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.

7) System analysis tasks system-evolution-analysis with a layer group parameter with churn analysis supported by the VCS type publishes a revisions report, a code churn report and a coupling report for each architectural layer of the system
  - Expected $[0].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[1].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[2].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[3].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[4].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[5].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  - Expected $[0].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[1].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[2].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[3].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[4].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[5].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  - Expected $[0].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[1].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[2].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[3].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[4].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[5].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.

8) System analysis tasks system-evolution-analysis with a layer group parameter with churn analysis not supported by the VCS type publishes a revisions report and a coupling report for each architectural layer of the system
  - Expected $[0].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[1].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[2].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[3].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[4].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[5].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  - Expected $[0].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[1].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[2].date = '2016-02-01T05:59:59.999Z' to equal '2016-01-31T12:59:59.999Z'.
  Expected $[3].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[4].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
  Expected $[5].date = '2016-02-29T05:59:59.999Z' to equal '2016-02-28T12:59:59.999Z'.
lsanders commented 6 years ago

There appears to be valid data in both the revision and sloc reports in tmp. Potentially a problem with merge reports. There are missing paths from both reports but that’s normal right? There are certainly matching entries. I have no other complexity reports enabled.

lsanders commented 6 years ago

Uhh, turns out that this was misconfiguration on my part. I had set the repository.rootPath in the gulpfile to a subdirectory due to the structure of my repository. Despite the good name here, I decided to try before finding the include/excludePaths. For the most part, it worked fine but won't merge report correctly.