test_find_closest_name Subroutine

public subroutine test_find_closest_name()

Arguments

None

Calls

proc~~test_find_closest_name~~CallsGraph proc~test_find_closest_name test_find_closest_name anyexceptions anyexceptions proc~test_find_closest_name->anyexceptions assert_that assert_that proc~test_find_closest_name->assert_that none~add_extension~2 StateRegistry%add_extension proc~test_find_closest_name->none~add_extension~2 none~add_primary_spec StateRegistry%add_primary_spec proc~test_find_closest_name->none~add_primary_spec none~find_closest_extension ExtensionFamily%find_closest_extension proc~test_find_closest_name->none~find_closest_extension none~get_extension_family StateRegistry%get_extension_family proc~test_find_closest_name->none~get_extension_family none~get_primary ExtensionFamily%get_primary proc~test_find_closest_name->none~get_primary sourcelocation sourcelocation proc~test_find_closest_name->sourcelocation true true proc~test_find_closest_name->true interface~mapl_assert MAPL_Assert none~add_extension~2->interface~mapl_assert none~back~50 StateItemExtensionVector%back none~add_extension~2->none~back~50 none~has_virtual_pt StateRegistry%has_virtual_pt none~add_extension~2->none~has_virtual_pt none~link_extension StateRegistry%link_extension none~add_extension~2->none~link_extension none~push_back~49 StateItemExtensionVector%push_back none~add_extension~2->none~push_back~49 proc~mapl_return MAPL_Return none~add_extension~2->proc~mapl_return proc~mapl_verify MAPL_Verify none~add_extension~2->proc~mapl_verify none~add_family StateRegistry%add_family none~add_primary_spec->none~add_family none~add_primary_spec->none~back~50 none~add_primary_spec->none~push_back~49 none~add_primary_spec->proc~mapl_return none~add_primary_spec->proc~mapl_verify none~find_closest_extension->none~get_primary make_adapters make_adapters none~find_closest_extension->make_adapters none~front~58 StateItemExtensionPtrVector%front none~find_closest_extension->none~front~58 none~get_extensions ExtensionFamily%get_extensions none~find_closest_extension->none~get_extensions none~get_spec~2 StateItemExtension%get_spec none~find_closest_extension->none~get_spec~2 none~match~35 StateItemAdapter%match none~find_closest_extension->none~match~35 none~of~206 StateItemExtensionPtrVector%of none~find_closest_extension->none~of~206 none~push_back~58 StateItemExtensionPtrVector%push_back none~find_closest_extension->none~push_back~58 none~find_closest_extension->proc~mapl_return none~find_closest_extension->proc~mapl_verify none~at~107 VirtualPtFamilyMap%at none~get_extension_family->none~at~107 none~get_extension_family->proc~mapl_return none~get_extension_family->proc~mapl_verify none~get_primary->interface~mapl_assert none~get_primary->none~front~58 none~get_primary->proc~mapl_return

Source Code

   subroutine test_find_closest_name()
      type(StateRegistry), target :: r
      type(VirtualConnectionPt) :: v_pt
      type(ExtensionFamily), pointer :: family
      type(StateItemExtension) :: extension
      type(StateItemExtension), pointer :: primary
      type(StateItemExtension), pointer :: ext_1, ext_2
      type(MockItemSpec) :: goal_spec
      type(StateItemExtension), pointer :: closest

      integer :: status
      r = StateRegistry('A')
      v_pt = VirtualConnectionPt(state_intent='export', short_name='E1')

      call r%add_primary_spec(v_pt, MockItemSpec('E', subtype='A', adapter_type='name'))

      extension = StateItemExtension(MockItemSpec('E',subtype='B'))
      ext_1 => r%add_extension(v_pt, extension, _RC)

      extension = StateItemExtension(MockItemSpec('F',subtype='A'))
      ext_2 => r%add_extension(v_pt, extension, _RC)

      family => r%get_extension_family(v_pt, _RC)
      primary => family%get_primary(_RC)

      goal_spec = MockItemSpec('E', subtype='A')
      closest => family%find_closest_extension(goal_spec,_RC)
      @assert_that(associated(closest, primary), is(true()))

      goal_spec = MockItemSpec('F', subtype='B')
      closest => family%find_closest_extension(goal_spec,_RC)
      @assert_that(associated(closest, ext_2), is(true()))
      
   end subroutine test_find_closest_name