@@ -623,3 +623,100 @@ assert_type(AR_LIKE_c - MAR_o, Any)
623623assert_type (AR_LIKE_td64 - MAR_o , Any )
624624assert_type (AR_LIKE_dt64 - MAR_o , Any )
625625assert_type (AR_LIKE_o - MAR_o , Any )
626+
627+ # Masked Array multiplication
628+
629+ assert_type (MAR_b * AR_LIKE_u , MaskedArray [np .uint32 ])
630+ assert_type (MAR_b * AR_LIKE_i , MaskedArray [np .signedinteger ])
631+ assert_type (MAR_b * AR_LIKE_f , MaskedArray [np .floating ])
632+ assert_type (MAR_b * AR_LIKE_c , MaskedArray [np .complexfloating ])
633+ assert_type (MAR_b * AR_LIKE_td64 , MaskedArray [np .timedelta64 ])
634+ assert_type (MAR_b * AR_LIKE_o , Any )
635+
636+ # Ignore due to https://github.com/python/mypy/issues/19341
637+ assert_type (AR_LIKE_u * MAR_b , MaskedArray [np .uint32 ]) # type: ignore[assert-type]
638+ assert_type (AR_LIKE_i * MAR_b , MaskedArray [np .signedinteger ]) # type: ignore[assert-type]
639+ assert_type (AR_LIKE_f * MAR_b , MaskedArray [np .floating ]) # type: ignore[assert-type]
640+ assert_type (AR_LIKE_c * MAR_b , MaskedArray [np .complexfloating ]) # type: ignore[assert-type]
641+ assert_type (AR_LIKE_td64 * MAR_b , MaskedArray [np .timedelta64 ]) # type: ignore[assert-type]
642+ assert_type (AR_LIKE_o * MAR_b , Any ) # type: ignore[assert-type]
643+
644+ assert_type (MAR_u4 * AR_LIKE_b , MaskedArray [np .uint32 ])
645+ assert_type (MAR_u4 * AR_LIKE_u , MaskedArray [np .unsignedinteger ])
646+ assert_type (MAR_u4 * AR_LIKE_i , MaskedArray [np .signedinteger ])
647+ assert_type (MAR_u4 * AR_LIKE_f , MaskedArray [np .floating ])
648+ assert_type (MAR_u4 * AR_LIKE_c , MaskedArray [np .complexfloating ])
649+ assert_type (MAR_u4 * AR_LIKE_td64 , MaskedArray [np .timedelta64 ])
650+ assert_type (MAR_u4 * AR_LIKE_o , Any )
651+
652+ assert_type (MAR_i8 * AR_LIKE_b , MaskedArray [np .int64 ])
653+ assert_type (MAR_i8 * AR_LIKE_u , MaskedArray [np .signedinteger ])
654+ assert_type (MAR_i8 * AR_LIKE_i , MaskedArray [np .signedinteger ])
655+ assert_type (MAR_i8 * AR_LIKE_f , MaskedArray [np .floating ])
656+ assert_type (MAR_i8 * AR_LIKE_c , MaskedArray [np .complexfloating ])
657+ assert_type (MAR_i8 * AR_LIKE_td64 , MaskedArray [np .timedelta64 ])
658+ assert_type (MAR_i8 * AR_LIKE_o , Any )
659+
660+ assert_type (MAR_f8 * AR_LIKE_b , MaskedArray [np .float64 ])
661+ assert_type (MAR_f8 * AR_LIKE_u , MaskedArray [np .float64 ])
662+ assert_type (MAR_f8 * AR_LIKE_i , MaskedArray [np .float64 ])
663+ assert_type (MAR_f8 * AR_LIKE_f , MaskedArray [np .float64 ])
664+ assert_type (MAR_f8 * AR_LIKE_c , MaskedArray [np .complexfloating ])
665+ assert_type (MAR_f8 * AR_LIKE_o , Any )
666+
667+ # Ignore due to https://github.com/python/mypy/issues/19341
668+ assert_type (AR_LIKE_b * MAR_f8 , MaskedArray [np .float64 ]) # type: ignore[assert-type]
669+ assert_type (AR_LIKE_u * MAR_f8 , MaskedArray [np .float64 ]) # type: ignore[assert-type]
670+ assert_type (AR_LIKE_i * MAR_f8 , MaskedArray [np .float64 ]) # type: ignore[assert-type]
671+ assert_type (AR_LIKE_f * MAR_f8 , MaskedArray [np .float64 ]) # type: ignore[assert-type]
672+ assert_type (AR_LIKE_c * MAR_f8 , MaskedArray [np .complexfloating ]) # type: ignore[assert-type]
673+ assert_type (AR_LIKE_o * MAR_f8 , Any ) # type: ignore[assert-type]
674+
675+ assert_type (MAR_c16 * AR_LIKE_b , MaskedArray [np .complex128 ])
676+ assert_type (MAR_c16 * AR_LIKE_u , MaskedArray [np .complex128 ])
677+ assert_type (MAR_c16 * AR_LIKE_i , MaskedArray [np .complex128 ])
678+ assert_type (MAR_c16 * AR_LIKE_f , MaskedArray [np .complex128 ])
679+ assert_type (MAR_c16 * AR_LIKE_c , MaskedArray [np .complex128 ])
680+ assert_type (MAR_c16 * AR_LIKE_o , Any )
681+
682+ # Ignore due to https://github.com/python/mypy/issues/19341
683+ assert_type (AR_LIKE_b * MAR_c16 , MaskedArray [np .complex128 ]) # type: ignore[assert-type]
684+ assert_type (AR_LIKE_u * MAR_c16 , MaskedArray [np .complex128 ]) # type: ignore[assert-type]
685+ assert_type (AR_LIKE_i * MAR_c16 , MaskedArray [np .complex128 ]) # type: ignore[assert-type]
686+ assert_type (AR_LIKE_f * MAR_c16 , MaskedArray [np .complex128 ]) # type: ignore[assert-type]
687+ assert_type (AR_LIKE_c * MAR_c16 , MaskedArray [np .complex128 ]) # type: ignore[assert-type]
688+ assert_type (AR_LIKE_o * MAR_c16 , Any ) # type: ignore[assert-type]
689+
690+ assert_type (MAR_td64 * AR_LIKE_b , MaskedArray [np .timedelta64 ])
691+ assert_type (MAR_td64 * AR_LIKE_u , MaskedArray [np .timedelta64 ])
692+ assert_type (MAR_td64 * AR_LIKE_i , MaskedArray [np .timedelta64 ])
693+ assert_type (MAR_td64 * AR_LIKE_o , Any )
694+
695+ # Ignore due to https://github.com/python/mypy/issues/19341
696+ assert_type (AR_LIKE_b * MAR_td64 , MaskedArray [np .timedelta64 ]) # type: ignore[assert-type]
697+ assert_type (AR_LIKE_u * MAR_td64 , MaskedArray [np .timedelta64 ]) # type: ignore[assert-type]
698+ assert_type (AR_LIKE_i * MAR_td64 , MaskedArray [np .timedelta64 ]) # type: ignore[assert-type]
699+ assert_type (AR_LIKE_td64 * MAR_td64 , MaskedArray [np .timedelta64 ]) # type: ignore[assert-type]
700+ assert_type (AR_LIKE_dt64 * MAR_td64 , MaskedArray [np .datetime64 ]) # type: ignore[assert-type]
701+ assert_type (AR_LIKE_o * MAR_td64 , Any ) # type: ignore[assert-type]
702+
703+ assert_type (AR_LIKE_o * MAR_dt64 , Any ) # type: ignore[assert-type]
704+
705+ assert_type (MAR_o * AR_LIKE_b , Any )
706+ assert_type (MAR_o * AR_LIKE_u , Any )
707+ assert_type (MAR_o * AR_LIKE_i , Any )
708+ assert_type (MAR_o * AR_LIKE_f , Any )
709+ assert_type (MAR_o * AR_LIKE_c , Any )
710+ assert_type (MAR_o * AR_LIKE_td64 , Any )
711+ assert_type (MAR_o * AR_LIKE_dt64 , Any )
712+ assert_type (MAR_o * AR_LIKE_o , Any )
713+
714+ # Ignore due to https://github.com/python/mypy/issues/19341
715+ assert_type (AR_LIKE_b * MAR_o , Any ) # type: ignore[assert-type]
716+ assert_type (AR_LIKE_u * MAR_o , Any ) # type: ignore[assert-type]
717+ assert_type (AR_LIKE_i * MAR_o , Any ) # type: ignore[assert-type]
718+ assert_type (AR_LIKE_f * MAR_o , Any ) # type: ignore[assert-type]
719+ assert_type (AR_LIKE_c * MAR_o , Any ) # type: ignore[assert-type]
720+ assert_type (AR_LIKE_td64 * MAR_o , Any ) # type: ignore[assert-type]
721+ assert_type (AR_LIKE_dt64 * MAR_o , Any ) # type: ignore[assert-type]
722+ assert_type (AR_LIKE_o * MAR_o , Any ) # type: ignore[assert-type]
0 commit comments