AllenInstitute / AllenInstitute/MIES

Important code which is not executed in tests

Open
#1,007 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug CodeQuality
Dominant language
IGOR Pro
Stars
30
Forks
11
Avg merge
1d 40m
Merged PRs (30d)
8

Description

Latest coverage data: https://byte-physics.de/public-downloads/aistorage/transfer/report/coverage

Using UTF code coverage feature it was revealed that the following code paths are never executed:

  • Locked/unlocked indexing with TTL channels
  • OOD_CalculateOffsets the condition yoked || setNr < numSets - 1 is never true
  • ED_AddEntryToLabnotebook with finite tolerance
  • DQ_StopOngoingDAQHelper: if(IsDeviceActiveWithBGTask(panelTitle, TASKNAME_FIFOMON)) and if(!RA_IsFirstSweep(panelTitle)) are never true.
  • Add generic test code for excecuting the _GetHelp function of analysis functions, see #1216
  • Not all branches of PSQ_EvaluateBaselineProperties are executed, see #1386
  • Get rid of MSQ_EvaluateBaselineProperties as it is not executed
  • MSQ_FastRheoEst: newDAScaleValue = DAScale[i] + stepSize[i] is never executed
  • SC_SpikeControl: The true path here is never hit
00000020|00000000|00000020|				if(SC_SkipsExhausted(minTrials, s.params))
________|________|________|					// if the minimum trials value has already reached the maximum
________|________|________|					// allowed trials, we are done and the set has not passed
  • HW_WriteDigital/HW_ReadDigital
  • HW_DisableYoking/HW_EnableYoking
  • DAP_FormatCommentString/DAP_AddUserComment
  • DAP_UnlockCommentNotebook/DAP_ClearCommentNotebook
  • DAP_DeleteStimulusSet
  • MIES_Dandi.ipf
  • DQ_GetNumDevicesWithDAQRunning
  • Add test override code to a wrapper function for GetKeyState so that DQ_STOP_REASON_ESCAPE_KEY can be tested as well.
  • DQS_StartDAQSingleDevice and aborting DC_Configure
  • DC_GetConfiguration #1410:
00001144|00000000|00001144|				if(scalingZero && (indexingLocked || !indexing) && setCycleCount > 0)
________|________|________|					DACAmp[i][%DASCALE] = 0
________|________|________|				endif
  • Done in #1237.
00000128|00000000|00000128|			if(powerSpectrum)
________|________|________|				DACAmp[i][%TPAMP] = 0
________|________|________|			endif
  • DC_GenerateStimsetFingerprint is that ever called with dataAcqOrTP == TEST_PULSE_MODE? -> Change to assert, #1409
  • DC_CheckIfDataWaveHasBorderVals
00000913|00000000|00000913|			if(V_Value != -1)
________|________|________|				return [1, V_row, V_col]
________|________|________|			endif
  • DC_CalculateChannelColumnNo with random acquisition, 3601294f (DAP_CheckProc_RandomRA: Fix random acquisition checkbox, 2023-05-22) was supposed to fix that but somehow didn't
  • EP_AddEpochsFromStimSetNote
00000406|________|________|			else
________|________|________|				DC_AddEpoch(panelTitle, channel, epochBegin, epochEnd, EPOCH_BASELINE_REGION_KEY, 2, lowerlimit = stimsetBegin, upperlimit = stimsetEnd)
________|________|________|			endif
  • EP_AddEpochsFromStimSetNote
412|________|________|________|            else

413|________|________|________|                tags = ReplaceStringByKey(EPOCH_SUBTYPE_KEY, "", EPOCH_BASELINE_REGION_KEY, STIMSETKEYNAME_SEP, EPOCHNAME_SEP)

414|________|________|________|                EP_AddEpoch(device, channel, epochBegin, epochEnd, tags, shortNameEpTypePTBaseline, 2, lowerlimit = stimsetBegin, upperlimit = stimsetEnd)
  • FindIndizes: prop branches
  • NWB_AppendStimset: custom waves are never written
  • NWB_WriteStimsetTemplateWaves with third party stimsets
  • NWB_LoadStimset: custom waves are never read
  • MIES_PressureControl.ipf
  • GetPopupMenuList/ParsePopupMenuValue with PGC_POPUPMENULIST_TYPE_BUILTIN
  • PGC_SetAndActivateControl: CONTROL_TYPE_VALDISPLAY/PGC_POPUPMENULIST_TYPE_BUILTIN/missing window
  • PGC_SetAndActivateControl: SetVariable see #1408
  • RA_StartMD/RA_Start: where numTotalSweeps == 1, see #1411
  • TP_ROAnalysis with buffer size > 1
  • Foreground DAQ
  • Foreground TP
  • AFH_CheckAnalysisParameter
855|________|________|________|            // non present required parameters are an error

856|________|________|________|            errorMessages[index++] = name + ": is required but missing"

857|________|________|________|            continue
  • BSP_ButtonProc_RestoreData
  • CA_DeleteCacheEntry/CA_OutputCacheStatistics
  • HW_NI_PrintPropertiesOfDevices
  • DAP_TurnOffAllChannels
  • DQ_ApplyAutoBias
334|________|________|________|        AI_UpdateAmpModel(device, "check_DatAcq_HoldEnable", headStage, value=1, sendToAll=0)

335|________|________|________|        AI_UpdateAmpModel(device, "setvar_DataAcq_Hold_IC", headstage, value=current * ONE_TO_PICO,sendToAll=0)
  • DQ_GetNumDevicesWithDAQRunning
  • Repeated acquisition with randomization, see #1700
  • MIES_GuiPopupMenuExt.htm, #822
  • MIES_LogbookViewer.htm, #822
  • CreateTiledChannelGraph: dDAQ, oodDAQ, overlay channels, unassoc DA/AD, TTL
  • ST_GetStimsetParameters/ST_GetStimsetParameterAsString/ST_RemoveStimSet
  • TP_GetNumDevicesWithTPRunning
  • StoreWaveOnDisk/LoadWaveFromDisk
  • DC_MakeHelperWaves with DECIMATION_NONE

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the linked coverage report and the unchecked entries in this issue, such as Locked/unlocked indexing with TTL channels, SC_SpikeControl, and DAP_UnlockCommentNotebook/DAP_ClearCommentNotebook. Read the named functions and their existing tests to identify one focused gap. Done means the selected paths are exercised and the coverage report confirms the improvement.

Written by the indexing model from the issue text.

Assessment

Domain
testing-qa
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
18/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.