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~55 StateItemExtensionVector%back none~add_extension~2->none~back~55 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~54 StateItemExtensionVector%push_back none~add_extension~2->none~push_back~54 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~55 none~add_primary_spec->none~push_back~54 none~add_primary_spec->proc~mapl_return none~add_primary_spec->proc~mapl_verify none~find_closest_extension->none~get_primary none~find_closest_extension->interface~mapl_assert none~front~10 StateItemExtensionPtrVector%front none~find_closest_extension->none~front~10 none~get_aspect_order StateItemSpec%get_aspect_order none~find_closest_extension->none~get_aspect_order none~get_aspect~2 StateItemSpec%get_aspect none~find_closest_extension->none~get_aspect~2 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~needs_extension_for StateItemAspect%needs_extension_for none~find_closest_extension->none~needs_extension_for none~push_back~10 StateItemExtensionPtrVector%push_back none~find_closest_extension->none~push_back~10 of of none~find_closest_extension->of none~find_closest_extension->proc~mapl_return none~find_closest_extension->proc~mapl_verify none~at~242 VirtualPtFamilyMap%at none~get_extension_family->none~at~242 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~10 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('3', typekind=R8, units='m'))

      extension = StateItemExtension(MockItemSpec('E',typekind=R4, units='km'))
      ext_1 => r%add_extension(v_pt, extension, _RC)

      extension = StateItemExtension(MockItemSpec('F',typekind=R4, units='m'))
      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', typekind=R8)
      closest => family%find_closest_extension(goal_spec,_RC)
      @assert_that(associated(closest, primary), is(true()))

      goal_spec = MockItemSpec('F', typekind=R4, units='m')
      closest => family%find_closest_extension(goal_spec,_RC)
      @assert_that(associated(closest, ext_2), is(true()))
      
   end subroutine test_find_closest_name