Changeset 36

Show
Ignore:
Timestamp:
02/10/08 17:49:05 (1 year ago)
Author:
aarti_pl
Message:

--

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/examples/util/serializer/util_serializer.cbp

    r32 r36  
    88        <Build> 
    99            <Target title="FunctionTest"> 
    10                 <Option output="$(#doost)\bin\$(PROJECT_NAME)_$(TARGET_NAME)" prefix_auto="1" extension_auto="1" /> 
    11                 <Option working_dir="$(#doost)\bin\" /> 
    12                 <Option object_output="$(#doost)\bin\obj\util\serializer\" /> 
     10                <Option output="$(#doost)/bin/$(PROJECT_NAME)_$(TARGET_NAME)" prefix_auto="1" extension_auto="1" /> 
     11                <Option working_dir="$(#doost)/bin/" /> 
     12                <Option object_output="$(#doost)/bin/obj/util/serializer/" /> 
    1313                <Option type="1" /> 
    1414                <Option compiler="dmd" /> 
     
    1919            </Target> 
    2020            <Target title="FunctionTest1"> 
    21                 <Option output="$(#doost)\bin\$(PROJECT_NAME)_$(TARGET_NAME)" prefix_auto="1" extension_auto="1" /> 
    22                 <Option working_dir="$(#doost)\bin\" /> 
    23                 <Option object_output="$(#doost)\bin\obj\util\serializer\" /> 
     21                <Option output="$(#doost)/bin/$(PROJECT_NAME)_$(TARGET_NAME)" prefix_auto="1" extension_auto="1" /> 
     22                <Option working_dir="$(#doost)/bin/" /> 
     23                <Option object_output="$(#doost)/bin/obj/util/serializer/" /> 
    2424                <Option type="1" /> 
    2525                <Option compiler="dmd" /> 
     
    4949            <Add library="phobos" /> 
    5050            <Add library="m" /> 
    51             <Add directory="C:\DLang\lib" /> 
    52             <Add directory="C:\DLang\bin" /> 
     51            <Add directory="C:/DLang/lib" /> 
     52            <Add directory="C:/DLang/bin" /> 
    5353        </Linker> 
    54         <Unit filename="..\..\..\doc\util\serializer\changelog.txt"> 
     54        <Unit filename="../../../doc/util/serializer/changelog.txt"> 
    5555            <Option target="&lt;{~None~}&gt;" /> 
    5656        </Unit> 
    57         <Unit filename="..\..\..\doc\util\serializer\todo.txt"> 
     57        <Unit filename="../../../doc/util/serializer/todo.txt"> 
    5858            <Option target="&lt;{~None~}&gt;" /> 
    5959        </Unit> 
    60         <Unit filename="..\..\..\doost\api\Common.d" /> 
    61         <Unit filename="..\..\..\doost\core\Traits.d" /> 
    62         <Unit filename="..\..\..\doost\text\Escaper.d" /> 
    63         <Unit filename="..\..\..\doost\text\Tokenizer.d" /> 
    64         <Unit filename="..\..\..\doost\util\DUnit.d" /> 
    65         <Unit filename="..\..\..\doost\util\serializer\Registry.d" /> 
    66         <Unit filename="..\..\..\doost\util\serializer\Serializer.d" /> 
    67         <Unit filename="..\..\..\doost\util\serializer\archive\JsonArchive.d" /> 
    68         <Unit filename="..\..\..\doost\util\serializer\archive\TextArchive.d" /> 
     60        <Unit filename="../../../doost/api/Common.d" /> 
     61        <Unit filename="../../../doost/core/Traits.d" /> 
     62        <Unit filename="../../../doost/text/Escaper.d" /> 
     63        <Unit filename="../../../doost/text/Tokenizer.d" /> 
     64        <Unit filename="../../../doost/util/DUnit.d" /> 
     65        <Unit filename="../../../doost/util/serializer/Registry.d" /> 
     66        <Unit filename="../../../doost/util/serializer/Serializer.d" /> 
     67        <Unit filename="../../../doost/util/serializer/archive/JsonArchive.d" /> 
     68        <Unit filename="../../../doost/util/serializer/archive/TextArchive.d" /> 
    6969        <Unit filename="FunctionTest.d"> 
    7070            <Option target="FunctionTest" /> 
     
    7373            <Option target="FunctionTest1" /> 
    7474        </Unit> 
    75         <Unit filename="..\..\..\std2\conv.d" /> 
     75        <Unit filename="../../../std2/conv.d" /> 
     76        <Unit filename="../../../std2/traits.d" /> 
    7677        <Extensions> 
    7778            <envvars /> 
  • trunk/std2/conv.d

    r32 r36  
    349349private T parseString(T)(char[] v) 
    350350{ 
    351     scope(exit) 
    352     { 
    353         if (v.length) 
     351    scope(exit)  
     352    { 
     353        if (v.length)  
    354354        { 
    355             conv_error!(char[], T)(v); 
     355            conv_error!(char[], T)(v);  
    356356        } 
    357357    } 
     
    674674        auto v = parseIntegral!(S, N1)(s); 
    675675        auto result = cast(N) v; 
    676         if (result != v) 
     676        if (result != v)  
    677677        { 
    678             conv_error!(S, N)(s); 
     678            conv_error!(S, N)(s);  
    679679        } 
    680680        return result; 
     
    13831383    assert(0); 
    13841384} 
    1385  
     1385  
    13861386unittest 
    13871387{ 
    13881388    debug( conv ) writefln( "conv.toFloat.unittest" ); 
    13891389    float f; 
    1390  
     1390     
    13911391    f = toFloat( "nAn" ); 
    13921392    assert(isnan(f)); 
     
    14061406    f = toFloat( ".456" ); 
    14071407    assert( f == .456f ); 
    1408  
     1408     
    14091409    // min and max 
    14101410    f = toFloat("1.17549e-38"); 
     
    15691569    debug(conv) writefln("conv.toIfloat.unittest"); 
    15701570    ifloat ift; 
    1571  
     1571     
    15721572    ift = toIfloat(toString(123.45)); 
    15731573    assert(toString(ift) == toString(123.45i)); 
     
    15841584    assert(toString(ift) == toString(ifloat.max)); 
    15851585    assert(feq(cast(ireal)ift, cast(ireal)ifloat.max)); 
    1586  
     1586    
    15871587    // nan 
    15881588    ift = toIfloat("nani"); 
     
    16191619    assert(feq(cast(ireal)id.re, cast(ireal)idouble.min.re)); 
    16201620    assert(feq(cast(ireal)id.im, cast(ireal)idouble.min.im)); 
    1621  
     1621     
    16221622    id = toIdouble(toString(idouble.max)); 
    16231623    assert(toString(id) == toString(idouble.max)); 
    16241624    assert(feq(cast(ireal)id.re, cast(ireal)idouble.max.re)); 
    16251625    assert(feq(cast(ireal)id.im, cast(ireal)idouble.max.im)); 
    1626  
     1626     
    16271627    // nan 
    16281628    id = toIdouble("nani"); 
     
    16481648 
    16491649    ir = toIreal(toString("123.45")); 
    1650     assert(feq(cast(real)ir.re, cast(real)123.45i)); 
     1650    assert(feq(cast(real)ir.re, cast(real)123.45i));  
    16511651 
    16521652    ir = toIreal(toString("123.45e+82i")); 
     
    16891689    if (!s.length) 
    16901690        goto Lerr; 
    1691  
     1691     
    16921692    b = getComplexStrings(s, s1, s2); 
    16931693 
    16941694    if (!b) 
    16951695        goto Lerr; 
    1696  
     1696     
    16971697    // atof(s1); 
    16981698    endptr = &s1[s1.length - 1]; 
    1699     r1 = strtold(s1, &endptr); 
     1699    r1 = strtold(s1, &endptr);  
    17001700 
    17011701    // atof(s2); 
    17021702    endptr = &s2[s2.length - 1]; 
    1703     r2 = strtold(s2, &endptr); 
     1703    r2 = strtold(s2, &endptr);  
    17041704 
    17051705    cf = cast(cfloat)(r1 + (r2 * 1.0i)); 
    17061706 
    1707     //writefln( "toCfloat() r1=%g, r2=%g, cf=%g, max=%g", 
     1707    //writefln( "toCfloat() r1=%g, r2=%g, cf=%g, max=%g",  
    17081708    //           r1, r2, cf, cfloat.max); 
    1709     // Currently disabled due to a posted bug where a 
    1710     // complex float greater-than compare to .max compares 
     1709    // Currently disabled due to a posted bug where a  
     1710    // complex float greater-than compare to .max compares  
    17111711    // incorrectly. 
    17121712    //if (cf > cfloat.max) 
     
    17171717    Loverflow: 
    17181718        conv_overflow(s); 
    1719  
     1719         
    17201720    Lerr: 
    17211721        conv_error(s); 
    1722         return cast(cfloat)0.0e-0+0i; 
     1722        return cast(cfloat)0.0e-0+0i;    
    17231723} 
    17241724 
     
    17381738    cf = toCfloat(toString(cfloat.max)); 
    17391739    assert(toString(cf) == toString(cfloat.max)); 
    1740  
     1740    
    17411741    // nan ( nan+nani ) 
    17421742    cf = toCfloat("nani"); 
    1743     //writefln("toCfloat() cf=%g, cf=\"%s\", nan=%s", 
     1743    //writefln("toCfloat() cf=%g, cf=\"%s\", nan=%s",  
    17441744    //         cf, toString(cf), toString(cfloat.nan)); 
    17451745    assert(toString(cf) == toString(cfloat.nan)); 
     
    17681768    if (!s.length) 
    17691769        goto Lerr; 
    1770  
     1770     
    17711771    b = getComplexStrings(s, s1, s2); 
    17721772 
     
    17761776    // atof(s1); 
    17771777    endptr = &s1[s1.length - 1]; 
    1778     r1 = strtold(s1, &endptr); 
     1778    r1 = strtold(s1, &endptr);  
    17791779 
    17801780    // atof(s2); 
     
    17831783 
    17841784    cd = cast(cdouble)(r1 + (r2 * 1.0i)); 
    1785  
     1785  
    17861786    //Disabled, waiting on a bug fix. 
    17871787    //if (cd > cdouble.max)  //same problem the toCfloat() having 
     
    17921792    Loverflow: 
    17931793        conv_overflow(s); 
    1794  
     1794         
    17951795    Lerr: 
    17961796        conv_error(s); 
    1797         return cast(cdouble)0.0e-0+0i; 
     1797        return cast(cdouble)0.0e-0+0i;  
    17981798} 
    17991799 
     
    18481848    if (!b) 
    18491849        goto Lerr; 
    1850  
     1850  
    18511851    // atof(s1); 
    18521852    endptr = &s1[s1.length - 1]; 
    1853     r1 = strtold(s1, &endptr); 
     1853    r1 = strtold(s1, &endptr);  
    18541854 
    18551855    // atof(s2); 
     
    18571857    r2 = strtold(s2, &endptr); //atof(s2); 
    18581858 
    1859     //writefln("toCreal() r1=%g, r2=%g, s1=\"%s\", s2=\"%s\", nan=%g", 
     1859    //writefln("toCreal() r1=%g, r2=%g, s1=\"%s\", s2=\"%s\", nan=%g",  
    18601860    //          r1, r2, s1, s2, creal.nan); 
    1861  
     1861    
    18621862    if (s1 =="nan" && s2 == "nani") 
    18631863        cr = creal.nan; 
     
    18651865        cr = cast(creal)(r1 + (r2 * 1.0i)); 
    18661866    else 
    1867         cr = cast(creal)(r1 + 0.0i); 
    1868  
     1867        cr = cast(creal)(r1 + 0.0i);     
     1868     
    18691869    return cr; 
    18701870 
    18711871    Lerr: 
    18721872        conv_error(s); 
    1873         return cast(creal)0.0e-0+0i; 
     1873        return cast(creal)0.0e-0+0i;     
    18741874} 
    18751875 
     
    18871887    assert(cr == 0.0e-0+0i); 
    18881888    assert(feq(cr, 0.0e-0+0i)); 
    1889  
     1889     
    18901890    cr = toCreal("123"); 
    18911891    assert(cr == 123); 
     
    18931893    cr = toCreal("+5"); 
    18941894    assert(cr == 5); 
    1895  
     1895  
    18961896    cr = toCreal("-78"); 
    18971897    assert(cr == -78); 
     
    19011901    assert(toString(cr) == toString(creal.min)); 
    19021902    assert(feq(cr, creal.min)); 
    1903  
     1903     
    19041904    cr = toCreal(toString(creal.max)); 
    19051905    assert(toString(cr) == toString(creal.max)); 
     
    19291929    int len = s.length; 
    19301930 
    1931     if (!len) 
     1931    if (!len)  
    19321932        goto Lerr; 
    19331933 
     
    19391939        return 1; 
    19401940    } 
    1941  
     1941     
    19421942    // Split the original string out into two strings. 
    19431943    for (int i = 1; i < len; i++) 
     
    19481948            if (i + 1 < len - 1) 
    19491949                s2 = s[i + 1..len - 1]; 
    1950             else 
     1950            else  
    19511951                s2 = "0e+0i"; 
    1952  
     1952             
    19531953            break; 
    1954         } 
    1955  
    1956     // Handle the case when there's only a single value 
     1954        }    
     1955 
     1956    // Handle the case when there's only a single value  
    19571957    // to work with, and set the other string to zero. 
    19581958    if (!s1.length) 
     
    19611961        s2 = "0e+0i"; 
    19621962    } 
    1963  
    1964     //writefln( "getComplexStrings() s=\"%s\", s1=\"%s\", s2=\"%s\", len=%d", 
     1963  
     1964    //writefln( "getComplexStrings() s=\"%s\", s1=\"%s\", s2=\"%s\", len=%d",  
    19651965    //           s, s1, s2, len ); 
    1966  
     1966    
    19671967    return 1; 
    19681968 
     
    19831983    if (rx == ry) 
    19841984        return 1; 
    1985  
     1985     
    19861986    if (isnan(rx)) 
    19871987        return cast(bool)isnan(ry); 
     
    19891989    if (isnan(ry)) 
    19901990        return 0; 
    1991  
     1991        
    19921992    return cast(bool)(fabs(rx - ry) <= precision); 
    19931993} 
     
    20052005    if (r1 == r2) 
    20062006        return 1; 
    2007  
     2007     
    20082008    if (isnan(r1)) 
    20092009        return cast(bool)isnan(r2); 
     
    20112011    if (isnan(r2)) 
    20122012        return 0; 
    2013  
     2013         
    20142014    return cast(bool)(feq(r1, r2, 0.000001L)); 
    2015 } 
    2016  
     2015}  
     2016  
    20172017/* *************************************** 
    20182018 * compare ireals with given precision 
     
    20252025    if (rx == ry) 
    20262026        return 1; 
    2027  
    2028     if (isnan(rx)) 
     2027     
     2028    if (isnan(rx))  
    20292029        return cast(bool)isnan(ry); 
    20302030 
    20312031    if (isnan(ry)) 
    20322032        return 0; 
    2033  
     2033     
    20342034    return feq(rx, ry, 0.000001L); 
    2035 } 
     2035}  
    20362036 
    20372037/* *************************************** 
     
    20462046        (cast(real)r1.im == cast(real)r2.im)) 
    20472047        return 1; 
    2048  
     2048     
    20492049    if (isnan(r1a)) 
    20502050        return cast(bool)isnan(r2b);