You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "Tolstokulakov Nikolay (JIRA)" <ji...@apache.org> on 2015/12/01 05:18:11 UTC

[jira] [Commented] (THRIFT-3456) rounding issue in static assert

    [ https://issues.apache.org/jira/browse/THRIFT-3456?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15033042#comment-15033042 ] 

Tolstokulakov Nikolay commented on THRIFT-3456:
-----------------------------------------------

I was wrong. Now I find issue with plus symbol: 1e20 vs 1e+20
I can suggest return 3.1415 as test value and split assert into two parts:

  static assert(structIdlString!WithDefaults.startsWith(
`struct WithDefaults {
  -1: string a = "asdf",
  -2: double b = 3.141`));

  static assert(structIdlString!WithDefaults.endsWith(
`1: WithoutMeta c = {a: "foo", b: 3, },
}
`));

Should I create new issue&branch for pull request or re-open with issue?

> rounding issue in static assert
> -------------------------------
>
>                 Key: THRIFT-3456
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3456
>             Project: Thrift
>          Issue Type: Bug
>          Components: D - Compiler
>            Reporter: Tolstokulakov Nikolay
>            Assignee: Tolstokulakov Nikolay
>             Fix For: 1.0
>
>
> thrift.codegen.idlgen
>  static assert(structIdlString!WithDefaults ==
>  `struct WithDefaults {
>    -1: string a = "asdf",
>   -2: double b = 3.1415,
>    1: WithoutMeta c = {a: "foo", b: 3, },
>  }
>  `);
> This assert fails for me, because struct contains double b = 3.1414999...999
> I suggest replace 3.1415 with 1.0e+20 
> This value is free from rounding issues.
> FYI
> thrift.internal.ctfe contains similar unit test, but it is not use strict match:
> static assert(ctfeToString(3.1415).startsWith("3.141"));
> Create pull request: https://github.com/apache/thrift/pull/720



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)