Skip to content

select or collect RoyalandLoyal

<!--      <details key="invariant_Customer8" value="self.memberships->collect( i_Membership : Membership | i_Membership.account )->select( i_LoyaltyAccount : LoyaltyAccount | i_LoyaltyAccount.points > 0  )->size() = 0"/> -->

genera

 invariant5 = context _Customer [invariant_Customer8]
 invariant_Customer8 self = ((((ocl self |.| memberships' |->| collect(\i_Membership -> ocl i_Membership |.|     account)) |->| select(\i_LoyaltyAccount -> (ocl i_LoyaltyAccount |.| points') |>| (oclInt 0))) |->| size))      |==| (oclInt 0)

valida true en un modelo con

un customer con dos memberships que sus loyaltyAccount tienen puntos

valida true en un modelo con

un customer con dos memberships y una LoyaltyAccount tiene puntos y la otra tiene 0 puntos.

Esto lo evalua correctamente

invariant_Customer8 : self.memberships->collect( i_Membership : Membership | i_Membership.account )->size() = 2

Parece estar el error en el select