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