[GRASS-dev] Re: [GRASS-QA] SOCCER LAB GRASS QA: 12 clones ( anim_support.c ) 0 monsters and 0 warnings

Hi,

(for those not aware of the GRASS-QA service)

there seems to be some cloned code here, see at bottom.

Markus

On Thu, May 25, 2006 at 01:35:30PM -0400, cvs@proxy.soccerlab.polymtl.ca wrote:

ANALYSIS

your changes to files/functions:

visualization/nviz/src/anim_support.c functions

Nset_interp_mode_cmd (Begins at: 32 Ends at: 74)
--------------+---------+-------+---------+
Complexity: | 4 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 3 | | OK |
LOC: | 43 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nset_tension_cmd (Begins at: 76 Ends at: 121)
--------------+---------+-------+---------+
Complexity: | 4 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 2 | | OK |
LOC: | 46 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nshowtension_start_cmd (Begins at: 123 Ends at: 140)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 18 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nupdate_tension_cmd (Begins at: 142 Ends at: 159)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 18 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nshowtension_stop_cmd (Begins at: 161 Ends at: 195)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 35 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nupdate_frames_cmd (Begins at: 197 Ends at: 230)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 34 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nset_numsteps_cmd (Begins at: 232 Ends at: 268)
--------------+---------+-------+---------+
Complexity: | 3 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 2 | | OK |
LOC: | 37 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nclear_keys_cmd (Begins at: 270 Ends at: 338)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 69 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nadd_key_cmd (Begins at: 340 Ends at: 437)
--------------+---------+-------+---------+
Complexity: | 17 | * | |
ParamNBR: | 4 | | OK |
CalledNBR: | 19 | | OK |
LOC: | 98 | | OK |
--------------+---------+-------+---------+
metrics are OK

Ndelete_key_cmd (Begins at: 439 Ends at: 486)
--------------+---------+-------+---------+
Complexity: | 5 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 5 | | OK |
LOC: | 48 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nmove_key_cmd (Begins at: 488 Ends at: 537)
--------------+---------+-------+---------+
Complexity: | 5 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 7 | | OK |
LOC: | 50 | | OK |
--------------+---------+-------+---------+
metrics are OK

Ndo_framestep_cmd (Begins at: 539 Ends at: 580)
--------------+---------+-------+---------+
Complexity: | 4 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 3 | | OK |
LOC: | 42 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nshow_site_cmd (Begins at: 582 Ends at: 605)
--------------+---------+-------+---------+
Complexity: | 3 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 2 | | OK |
LOC: | 24 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nprint_keys_cmd (Begins at: 607 Ends at: 624)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 18 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nshow_vect_cmd (Begins at: 626 Ends at: 649)
--------------+---------+-------+---------+
Complexity: | 3 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 2 | | OK |
LOC: | 24 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nshow_vol_cmd (Begins at: 651 Ends at: 674)
--------------+---------+-------+---------+
Complexity: | 3 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 2 | | OK |
LOC: | 24 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nshow_lab_cmd (Begins at: 676 Ends at: 699)
--------------+---------+-------+---------+
Complexity: | 3 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 2 | | OK |
LOC: | 24 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nshow_path_cmd (Begins at: 702 Ends at: 739)
--------------+---------+-------+---------+
Complexity: | 3 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 2 | | OK |
LOC: | 38 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nwrite_rgb_cmd (Begins at: 741 Ends at: 772)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 32 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nwrite_ppm_cmd (Begins at: 774 Ends at: 805)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 32 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nwrite_tif_cmd (Begins at: 807 Ends at: 824)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 18 | | OK |
--------------+---------+-------+---------+
metrics are OK

Noff_screen_cmd (Begins at: 827 Ends at: 863)
--------------+---------+-------+---------+
Complexity: | 5 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 4 | | OK |
LOC: | 37 | | OK |
--------------+---------+-------+---------+
metrics are OK

Ninit_mpeg_cmd (Begins at: 869 Ends at: 889)
--------------+---------+-------+---------+
Complexity: | 3 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 21 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nwrite_mpeg_frame_cmd (Begins at: 894 Ends at: 911)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 18 | | OK |
--------------+---------+-------+---------+
metrics are OK

Nclose_mpeg_cmd (Begins at: 916 Ends at: 933)
--------------+---------+-------+---------+
Complexity: | 2 | | OK |
ParamNBR: | 4 | | OK |
CalledNBR: | 1 | | OK |
LOC: | 18 | | OK |
--------------+---------+-------+---------+
metrics are OK

Clone analysis:

This file has 12 potentially cloned functions:
  Nclose_mpeg_cmd Nwrite_mpeg_frame_cmd Nwrite_tif_cmd Nprint_keys_cmd Nupdate_tension_cmd Nshowtension_start_cmd Nshow_lab_cmd Nshow_vol_cmd Nshow_vect_cmd Nshow_site_cmd Nwrite_ppm_cmd Nwrite_rgb_cmd

In visualization/nviz/src/anim_support.c clones of Nshow_vol_cmd are:
  visualization/nviz/src/anim_support.c Nshow_lab_cmd
  visualization/nviz/src/anim_support.c Nshow_vect_cmd
  visualization/nviz/src/anim_support.c Nshow_site_cmd

In visualization/nviz/src/anim_support.c clones of Nclose_mpeg_cmd are:
  visualization/nviz/src/anim_support.c Nwrite_mpeg_frame_cmd
  visualization/nviz/src/anim_support.c Nwrite_tif_cmd
  visualization/nviz/src/anim_support.c Nprint_keys_cmd
  visualization/nviz/src/anim_support.c Nupdate_tension_cmd
  visualization/nviz/src/anim_support.c Nshowtension_start_cmd

In visualization/nviz/src/anim_support.c clones of Nwrite_tif_cmd are:
  visualization/nviz/src/anim_support.c Nclose_mpeg_cmd
  visualization/nviz/src/anim_support.c Nwrite_mpeg_frame_cmd
  visualization/nviz/src/anim_support.c Nprint_keys_cmd
  visualization/nviz/src/anim_support.c Nupdate_tension_cmd
  visualization/nviz/src/anim_support.c Nshowtension_start_cmd

In visualization/nviz/src/anim_support.c clones of Nwrite_ppm_cmd are:
  visualization/nviz/src/anim_support.c Nwrite_rgb_cmd

In visualization/nviz/src/anim_support.c clones of Nwrite_rgb_cmd are:
  visualization/nviz/src/anim_support.c Nwrite_ppm_cmd

In visualization/nviz/src/anim_support.c clones of Nprint_keys_cmd are:
  visualization/nviz/src/anim_support.c Nclose_mpeg_cmd
  visualization/nviz/src/anim_support.c Nwrite_mpeg_frame_cmd
  visualization/nviz/src/anim_support.c Nwrite_tif_cmd
  visualization/nviz/src/anim_support.c Nupdate_tension_cmd
  visualization/nviz/src/anim_support.c Nshowtension_start_cmd

In visualization/nviz/src/anim_support.c clones of Nshow_lab_cmd are:
  visualization/nviz/src/anim_support.c Nshow_vol_cmd
  visualization/nviz/src/anim_support.c Nshow_vect_cmd
  visualization/nviz/src/anim_support.c Nshow_site_cmd

In visualization/nviz/src/anim_support.c clones of Nshow_vect_cmd are:
  visualization/nviz/src/anim_support.c Nshow_lab_cmd
  visualization/nviz/src/anim_support.c Nshow_vol_cmd
  visualization/nviz/src/anim_support.c Nshow_site_cmd

In visualization/nviz/src/anim_support.c clones of Nupdate_tension_cmd are:
  visualization/nviz/src/anim_support.c Nclose_mpeg_cmd
  visualization/nviz/src/anim_support.c Nwrite_mpeg_frame_cmd
  visualization/nviz/src/anim_support.c Nwrite_tif_cmd
  visualization/nviz/src/anim_support.c Nprint_keys_cmd
  visualization/nviz/src/anim_support.c Nshowtension_start_cmd

In visualization/nviz/src/anim_support.c clones of Nshow_site_cmd are:
  visualization/nviz/src/anim_support.c Nshow_lab_cmd
  visualization/nviz/src/anim_support.c Nshow_vol_cmd
  visualization/nviz/src/anim_support.c Nshow_vect_cmd

In visualization/nviz/src/anim_support.c clones of Nshowtension_start_cmd are:
  visualization/nviz/src/anim_support.c Nclose_mpeg_cmd
  visualization/nviz/src/anim_support.c Nwrite_mpeg_frame_cmd
  visualization/nviz/src/anim_support.c Nwrite_tif_cmd
  visualization/nviz/src/anim_support.c Nprint_keys_cmd
  visualization/nviz/src/anim_support.c Nupdate_tension_cmd

In visualization/nviz/src/anim_support.c clones of Nwrite_mpeg_frame_cmd are:
  visualization/nviz/src/anim_support.c Nclose_mpeg_cmd
  visualization/nviz/src/anim_support.c Nwrite_tif_cmd
  visualization/nviz/src/anim_support.c Nprint_keys_cmd
  visualization/nviz/src/anim_support.c Nupdate_tension_cmd
  visualization/nviz/src/anim_support.c Nshowtension_start_cmd

__________________________________________

Threshold GRASS6 key metrics values at 2006-05-25 are:
---------------------------+-----------+---------+
                    median | upper | outlier |
                           | quartile | limit |
---------------------------+-----------+---------+
Complexity (Cyclo): 5 | 25 | 36 |
ParamNBR: 2 | 6 | 8 |
CalledNBR: 9 | 55 | 79 |
LOC: 40 | 182 | 253 |
---------------------------+-----------+---------+

Measures (see below Web page for details):
Complexity (Cyclo): a complexity index
ParamNBR: number of passed parameters
CalledNBR: number of called functions
LOC: Lines Of Code

Message interpretation:
OK : Nothing to say at all
* : above 75 % of value warning
** : this is getting close to be out of range, consider revising the code
***: this is a monster, definitely you should revise this function

__________________________________________
Brought to you by:
SOftware Cost-effective Change and Evolution Research (SOCCER) laboratory
http://web.soccerlab.polymtl.ca/grass-evolution/grass-browsers/grass-index-en.html

_______________________________________________
grass-qa mailing list
grass-qa@grass.itc.it
http://grass.itc.it/mailman/listinfo/grass-qa

Markus Neteler wrote:

(for those not aware of the GRASS-QA service)

there seems to be some cloned code here, see at bottom.

All of those functions are boilerplate Tcl wrappers, each around a
different function. None of them are really complex enough to warrant
refactoring (plus the clone detector is being a bit too loose in its
definition of a "clone" here).

--
Glynn Clements <glynn@gclements.plus.com>