Documentation

Documentation
V5 Documentation

RDI Data Point Location Constraints

Summary

RDI is language agnostic. This means it doesn't understand the lexical structure of your code. Data points are placed using a simple text matching routine.

Potential Problems

Unfortunately, text matching for data points using only their name and source statement has limitations. Consider the following source code.

The source line in question calls a method with a local variable. The name of the variable is also shown in a comment on the line. When given this source line and the name of the variable, it isn't possible for RDI to determine where to place its data point in a way that doesn't involve some knowledge of the C# language. In this situation, the text matcher instead finds multiple matches and it gives up entirely. The data point and its value then become accessible instead by placing the mouse over the control flow marker for the line.

Description

It could be argued that implementing some basic knowledge of C# could improve accuracy in this area, but unfortunately programming languages are extremely complex and any simplistic solution could result in edge cases that risk placing data points that are not in true alignment with the code, making RDI's data reporting unreliable.

For data point placement, 99.9% accuracy is not good enough. Accuracy must be 100%, or any data point becomes suspect. Without implementing at least several stages of the compiler for every language supported by NCrunch (utterly unmaintainable given the speed of .NET language development), we cannot reach 100% accuracy on data point placement for all data points.

The text matching system is a concession that gives a balance between function and maintainability which ultimately makes RDI possible. If the text matcher cannot determine with 100% accuracy that an element on a source line is a match for a data point, it will instead attach the data point to the control flow marker on the left side of the screen, where a rational user can then form their own determination of what the data point relates to in their code.

Trial NCrunch
Take NCrunch for a spin
Do your fingers a favour and supercharge your testing workflow
Free Download