Stream: helpdesk (published)

Topic: Codecov does not work with multiline expressions?


view this post on Zulip Andrés Riedemann (Jun 23 2025 at 04:37):

Hello, in my code, i have the following expr (This is the worst one):

        a2_ij = π*_KHS*(1+)*_ρ_S*ϵ^2*dij3*_C^2*
            (x_0ij^(2*λa)*(@f(aS_1,2*λa,ζₓ)+@f(B,2*λa,x_0effij,ζₓ))-
            x_0ij^(λa+λr)*2*(@f(aS_1,λa+λr,ζₓ)+@f(B,λa+λr,x_0effij,ζₓ))+
            x_0ij^(2*λr)*(@f(aS_1,2*λr,ζₓ)+@f(B,2*λr,x_0effij,ζₓ))+
            x_0ij^(2*λa+2)*2*Q1λa*(@f(aS_1,2*λa+2,ζₓ)+@f(B,2*λa+2,x_0effij,ζₓ))*Dij+
            x_0ij^(2*λr+2)*2*Q1λr*(@f(aS_1,2*λr+2,ζₓ)+@f(B,2*λr+2,x_0effij,ζₓ))*Dij-
            x_0ij^(λa+λr+2)*2*(Q1λa+Q1λr)*(@f(aS_1,λa+λr+2,ζₓ)+@f(B,λa+λr+2,x_0effij,ζₓ))*Dij+
            x_0ij^(2*λa+4)*Q1λa^2*(@f(aS_1,2*λa+4,ζₓ)+@f(B,2*λa+4,x_0effij,ζₓ))*Dij^2+
            x_0ij^(2*λr+4)*Q1λr^2*(@f(aS_1,2*λr+4,ζₓ)+@f(B,2*λr+4,x_0effij,ζₓ))*Dij^2-
            x_0ij^(λa+λr+4)*(2*Q1λa*Q1λr)*(@f(aS_1,λa+λr+4,ζₓ)+@f(B,λa+λr+4,x_0effij,ζₓ))*Dij^2+
            x_0ij^(2*λa+4)*2*Q2λa*(@f(aS_1,2*λa+4,ζₓ)+@f(B,2*λa+4,x_0effij,ζₓ))*Dij^2+
            x_0ij^(2*λr+4)*2*Q2λr*(@f(aS_1,2*λr+4,ζₓ)+@f(B,2*λr+4,x_0effij,ζₓ))*Dij^2-
            x_0ij^(λa+λr+4)*2*(Q2λa+Q2λr)*(@f(aS_1,λa+λr+4,ζₓ)+@f(B,λa+λr+4,x_0effij,ζₓ))*Dij^2+
            x_0ij^(2*λa+6)*2*(Q1λa*Q2λa)*(@f(aS_1,2*λa+6,ζₓ)+@f(B,2*λa+6,x_0effij,ζₓ))*Dij^3+
            x_0ij^(2*λr+6)*2*(Q1λr*Q2λr)*(@f(aS_1,2*λr+6,ζₓ)+@f(B,2*λr+6,x_0effij,ζₓ))*Dij^3-
            x_0ij^(λa+λr+6)*2*(Q1λr*Q2λa+Q1λa*Q2λr)*(@f(aS_1,λa+λr+6,ζₓ)+@f(B,λa+λr+6,x_0effij,ζₓ))*Dij^3+
            x_0ij^(2*λa+8)*Q2λa^2*(@f(aS_1,2*λa+8,ζₓ)+@f(B,2*λa+8,x_0effij,ζₓ))*Dij^4+
            x_0ij^(2*λr+8)*Q2λr^2*(@f(aS_1,2*λr+8,ζₓ)+@f(B,2*λr+8,x_0effij,ζₓ))*Dij^4-
            x_0ij^(λa+λr+8)*(2*Q2λa*Q2λr)*(@f(aS_1,λa+λr+8,ζₓ)+@f(B,λa+λr+8,x_0effij,ζₓ))*Dij^4)

codecov only marks the first line as covered. Is there something i can do about that? (from the codecov side :sweat_smile: )

view this post on Zulip Mason Protter (Jun 23 2025 at 08:15):

I don't think so, because IIRC julia will report that as a 1-line expression.

view this post on Zulip Neven Sajko (Jun 23 2025 at 10:59):

the obvious thing to do is separate the monstrosity into multiple named subexpressions

view this post on Zulip jar (Jun 23 2025 at 17:48):

That's incredible.

view this post on Zulip Mosè Giordano (Jun 24 2025 at 00:29):

With julia currently lacking Common Subexpression Elimination you really want to refactor the code to reduce duplication. https://github.com/JuliaLang/julia/pull/51120 would help, but we're far from it at the moment


Last updated: Jul 01 2025 at 04:54 UTC