Fix sch_field and pcb_target not returning evaluated similarity correctly

This commit is contained in:
Marek Roszko 2024-01-16 15:43:22 -05:00
parent 3bbf45dccb
commit 76e8ed2506
2 changed files with 9 additions and 9 deletions

View File

@ -1341,7 +1341,7 @@ double SCH_FIELD::Similarity( const SCH_ITEM& aOther ) const
const SCH_FIELD& field = static_cast<const SCH_FIELD&>( aOther );
double retval = 0.99; // The UUIDs are different, so we start with non-identity
double similarity = 0.99; // The UUIDs are different, so we start with non-identity
if( GetId() != field.GetId() )
{
@ -1349,25 +1349,25 @@ double SCH_FIELD::Similarity( const SCH_ITEM& aOther ) const
if( GetId() < MANDATORY_FIELDS || field.GetId() < MANDATORY_FIELDS )
return 0.0;
else
retval *= 0.5;
similarity *= 0.5;
}
if( GetPosition() != field.GetPosition() )
retval *= 0.5;
similarity *= 0.5;
if( IsNamedVariable() != field.IsNamedVariable() )
retval *= 0.5;
similarity *= 0.5;
if( IsNameShown() != field.IsNameShown() )
retval *= 0.5;
similarity *= 0.5;
if( CanAutoplace() != field.CanAutoplace() )
retval *= 0.5;
similarity *= 0.5;
if( GetText() != field.GetText() )
retval *= Levenshtein( field );
similarity *= Levenshtein( field );
return 1.0;
return similarity;
}

View File

@ -225,7 +225,7 @@ double PCB_TARGET::Similarity( const BOARD_ITEM& aOther ) const
if( GetPosition() != other.GetPosition() )
similarity *= 0.9;
return 1.0;
return similarity;
}
static struct PCB_TARGET_DESC