diff --git a/tests/separators_without_space.xdi b/tests/separators_without_space.xdi new file mode 100644 index 0000000..5fd8615 --- /dev/null +++ b/tests/separators_without_space.xdi @@ -0,0 +1,642 @@ +# XDI/1.0 EDC/5.02 +# Beamline.collimation: none +# Beamline.focusing: no +# Beamline.harmonic_rejection: detuned mono +# Beamline.name: X11A +# Beamline.table_translation: no +# Column.1: energy eV +# Column.2: mutrans +# EDC.DEL: 10.020 .483 .050K +# EDC.GAINS: 8 7 10 +# EDC.OFFSETS: 51284 50016 48319 +# EDC.SRB: -193.7 -43.5 30.0 2381.3 +# Element.edge: K +# Element.symbol: Cu +# Facility.energy: 2.584 GeV +# Facility.name: NSLS +# Facility.xray_source: bend magnet +# Mono.d_spacing: 3.135301 +# Mono.name: Si(111) +# Mono.stpdeg: 6400 +# Sample.name: Cu +# Sample.sample: Cu metal foil, 99.999% +# Sample.prep: foil rolled, annealled, rolled ~12 micron +# Sample.temperature: 10 K +# Scan.edge_energy: 8980.0 eV +# Scan.start_time: 1992-09-15T01:52:53 +#///////////// +# Cu foil, 10K, rolled and annealled foil by matt +#------------- +# energy mutrans + .8786204E+04 .1013661E+01 + .8796258E+04 .9949864E+00 + .8806253E+04 .9900679E+00 + .8816270E+04 .9850345E+00 + .8826270E+04 .9801005E+00 + .8836292E+04 .9751812E+00 + .8846337E+04 .9703809E+00 + .8856322E+04 .9656931E+00 + .8866372E+04 .9609839E+00 + .8876361E+04 .9562312E+00 + .8886416E+04 .9515597E+00 + .8896409E+04 .9472797E+00 + .8906425E+04 .9427789E+00 + .8916464E+04 .9387816E+00 + .8926483E+04 .9347627E+00 + .8936483E+04 .9319326E+00 + .8936998E+04 .9318979E+00 + .8937471E+04 .9319605E+00 + .8937944E+04 .9317057E+00 + .8938417E+04 .9314675E+00 + .8938976E+04 .9315093E+00 + .8939406E+04 .9315045E+00 + .8939878E+04 .9313901E+00 + .8940352E+04 .9313291E+00 + .8940824E+04 .9312409E+00 + .8941384E+04 .9311222E+00 + .8941814E+04 .9310213E+00 + .8942287E+04 .9309021E+00 + .8942761E+04 .9307298E+00 + .8943319E+04 .9306122E+00 + .8943793E+04 .9304990E+00 + .8944224E+04 .9306326E+00 + .8944697E+04 .9305469E+00 + .8945257E+04 .9303982E+00 + .8945730E+04 .9303880E+00 + .8946204E+04 .9303346E+00 + .8946635E+04 .9303558E+00 + .8947108E+04 .9302956E+00 + .8947668E+04 .9302498E+00 + .8948143E+04 .9302464E+00 + .8948616E+04 .9301887E+00 + .8949048E+04 .9302589E+00 + .8949564E+04 .9302350E+00 + .8950038E+04 .9301157E+00 + .8950513E+04 .9302852E+00 + .8950987E+04 .9301982E+00 + .8951461E+04 .9303481E+00 + .8951979E+04 .9303330E+00 + .8952453E+04 .9302519E+00 + .8952927E+04 .9303452E+00 + .8953401E+04 .9304274E+00 + .8953876E+04 .9305623E+00 + .8954394E+04 .9306202E+00 + .8954868E+04 .9307082E+00 + .8955343E+04 .9309137E+00 + .8955817E+04 .9310440E+00 + .8956336E+04 .9311512E+00 + .8956811E+04 .9312306E+00 + .8957285E+04 .9314795E+00 + .8957761E+04 .9315805E+00 + .8958235E+04 .9318467E+00 + .8958710E+04 .9322639E+00 + .8959229E+04 .9325585E+00 + .8959703E+04 .9327140E+00 + .8960179E+04 .9331298E+00 + .8960654E+04 .9333592E+00 + .8961130E+04 .9338366E+00 + .8961647E+04 .9340628E+00 + .8962123E+04 .9345798E+00 + .8962599E+04 .9350846E+00 + .8963074E+04 .9357670E+00 + .8963550E+04 .9363439E+00 + .8964068E+04 .9371685E+00 + .8964544E+04 .9378253E+00 + .8965020E+04 .9386100E+00 + .8965496E+04 .9393651E+00 + .8965972E+04 .9404053E+00 + .8966447E+04 .9413668E+00 + .8966967E+04 .9426652E+00 + .8967442E+04 .9440842E+00 + .8967919E+04 .9458520E+00 + .8968395E+04 .9469061E+00 + .8968871E+04 .9484839E+00 + .8969347E+04 .9510049E+00 + .8969909E+04 .9537250E+00 + .8970386E+04 .9559226E+00 + .8970862E+04 .9591411E+00 + .8971339E+04 .9638383E+00 + .8971772E+04 .9658701E+00 + .8972248E+04 .9704646E+00 + .8972812E+04 .9777987E+00 + .8973288E+04 .9857215E+00 + .8973765E+04 .9959283E+00 + .8974198E+04 .1004012E+01 + .8974675E+04 .1025727E+01 + .8975151E+04 .1041380E+01 + .8975628E+04 .1065133E+01 + .8976192E+04 .1129467E+01 + .8976626E+04 .1208882E+01 + .8977103E+04 .1347811E+01 + .8977580E+04 .1576825E+01 + .8978057E+04 .1781245E+01 + .8978534E+04 .1922731E+01 + .8979055E+04 .1990812E+01 + .8979531E+04 .2014387E+01 + .8980009E+04 .2006267E+01 + .8980486E+04 .1985342E+01 + .8980964E+04 .1960698E+01 + .8981441E+04 .1948155E+01 + .8981919E+04 .1962577E+01 + .8982396E+04 .1988741E+01 + .8982918E+04 .2034157E+01 + .8983396E+04 .2087115E+01 + .8983873E+04 .2129985E+01 + .8984352E+04 .2166079E+01 + .8984829E+04 .2204677E+01 + .8985307E+04 .2266785E+01 + .8985785E+04 .2305345E+01 + .8986307E+04 .2377522E+01 + .8986784E+04 .2447587E+01 + .8987263E+04 .2550736E+01 + .8987741E+04 .2628802E+01 + .8988219E+04 .2739306E+01 + .8988697E+04 .2846921E+01 + .8989176E+04 .2926129E+01 + .8989653E+04 .3004384E+01 + .8990132E+04 .3103122E+01 + .8990698E+04 .3211040E+01 + .8991133E+04 .3253994E+01 + .8991611E+04 .3299688E+01 + .8992090E+04 .3307443E+01 + .8992568E+04 .3292812E+01 + .8993048E+04 .3270622E+01 + .8993526E+04 .3232157E+01 + .8994006E+04 .3193880E+01 + .8994484E+04 .3153873E+01 + .8995007E+04 .3110148E+01 + .8995485E+04 .3076609E+01 + .8995965E+04 .3057663E+01 + .8996444E+04 .3044436E+01 + .8996924E+04 .3038896E+01 + .8997402E+04 .3047299E+01 + .8997882E+04 .3067514E+01 + .8998361E+04 .3100560E+01 + .8998840E+04 .3164385E+01 + .8999319E+04 .3198286E+01 + .8999799E+04 .3253436E+01 + .9000366E+04 .3303922E+01 + .9000803E+04 .3341708E+01 + .9001281E+04 .3359158E+01 + .9001762E+04 .3356086E+01 + .9002241E+04 .3337021E+01 + .9002721E+04 .3294590E+01 + .9003201E+04 .3271427E+01 + .9003681E+04 .3230007E+01 + .9004161E+04 .3208134E+01 + .9004642E+04 .3151590E+01 + .9005121E+04 .3126171E+01 + .9005602E+04 .3094709E+01 + .9006125E+04 .3063252E+01 + .9006605E+04 .3043238E+01 + .9007086E+04 .3022431E+01 + .9007566E+04 .2994922E+01 + .9008047E+04 .2975828E+01 + .9008526E+04 .2955377E+01 + .9009007E+04 .2941575E+01 + .9009487E+04 .2933227E+01 + .9009969E+04 .2931259E+01 + .9011062E+04 .2941681E+01 + .9012153E+04 .2955967E+01 + .9013246E+04 .2980734E+01 + .9014384E+04 .3008692E+01 + .9015565E+04 .3061603E+01 + .9016746E+04 .3111765E+01 + .9017928E+04 .3151268E+01 + .9019154E+04 .3209008E+01 + .9020380E+04 .3265456E+01 + .9021606E+04 .3309451E+01 + .9022877E+04 .3344066E+01 + .9024191E+04 .3347933E+01 + .9025464E+04 .3317408E+01 + .9026822E+04 .3256685E+01 + .9028140E+04 .3197553E+01 + .9029499E+04 .3127461E+01 + .9030903E+04 .3074151E+01 + .9032309E+04 .3038878E+01 + .9033759E+04 .3014589E+01 + .9035164E+04 .3009469E+01 + .9036615E+04 .3019048E+01 + .9038109E+04 .3042527E+01 + .9039604E+04 .3064316E+01 + .9041145E+04 .3070378E+01 + .9042642E+04 .3060592E+01 + .9044271E+04 .3049929E+01 + .9045768E+04 .3056479E+01 + .9047397E+04 .3083377E+01 + .9049029E+04 .3111159E+01 + .9050616E+04 .3117680E+01 + .9052336E+04 .3112090E+01 + .9053969E+04 .3114585E+01 + .9055646E+04 .3135969E+01 + .9057324E+04 .3166758E+01 + .9059047E+04 .3194733E+01 + .9060814E+04 .3212787E+01 + .9062627E+04 .3230845E+01 + .9064353E+04 .3252570E+01 + .9066166E+04 .3285908E+01 + .9067981E+04 .3320478E+01 + .9069842E+04 .3347080E+01 + .9071702E+04 .3347973E+01 + .9073563E+04 .3322422E+01 + .9075470E+04 .3270037E+01 + .9077377E+04 .3199704E+01 + .9079329E+04 .3141443E+01 + .9081283E+04 .3096301E+01 + .9083237E+04 .3056642E+01 + .9085281E+04 .3035020E+01 + .9087237E+04 .3030587E+01 + .9089283E+04 .3008554E+01 + .9091330E+04 .2954597E+01 + .9093378E+04 .2905036E+01 + .9095472E+04 .2869176E+01 + .9097610E+04 .2861018E+01 + .9099705E+04 .2881511E+01 + .9101847E+04 .2917772E+01 + .9104033E+04 .2965204E+01 + .9106221E+04 .3017964E+01 + .9108409E+04 .3067991E+01 + .9110644E+04 .3100566E+01 + .9112879E+04 .3107379E+01 + .9115160E+04 .3090957E+01 + .9117398E+04 .3071216E+01 + .9119728E+04 .3065036E+01 + .9122057E+04 .3105295E+01 + .9124389E+04 .3203622E+01 + .9126721E+04 .3327629E+01 + .9129099E+04 .3390544E+01 + .9131478E+04 .3393080E+01 + .9133904E+04 .3363564E+01 + .9136331E+04 .3334324E+01 + .9138805E+04 .3300580E+01 + .9141279E+04 .3238897E+01 + .9143756E+04 .3156461E+01 + .9146233E+04 .3055825E+01 + .9148803E+04 .2946566E+01 + .9151328E+04 .2839257E+01 + .9153899E+04 .2747080E+01 + .9156474E+04 .2689709E+01 + .9159094E+04 .2682628E+01 + .9161716E+04 .2730871E+01 + .9164339E+04 .2816572E+01 + .9167009E+04 .2917572E+01 + .9169681E+04 .3016081E+01 + .9172399E+04 .3080977E+01 + .9175074E+04 .3115732E+01 + .9177842E+04 .3108910E+01 + .9180564E+04 .3070012E+01 + .9183381E+04 .3033550E+01 + .9186153E+04 .3015555E+01 + .9188973E+04 .3007977E+01 + .9191794E+04 .2979829E+01 + .9194663E+04 .2938781E+01 + .9197533E+04 .2929960E+01 + .9200406E+04 .2976179E+01 + .9203326E+04 .3073268E+01 + .9206247E+04 .3170151E+01 + .9209217E+04 .3203155E+01 + .9212143E+04 .3206142E+01 + .9215115E+04 .3190300E+01 + .9218183E+04 .3147204E+01 + .9221160E+04 .3071421E+01 + .9224185E+04 .2977321E+01 + .9227258E+04 .2889161E+01 + .9230333E+04 .2822056E+01 + .9233502E+04 .2781351E+01 + .9236581E+04 .2763039E+01 + .9239755E+04 .2769146E+01 + .9242838E+04 .2800158E+01 + .9246016E+04 .2822845E+01 + .9249196E+04 .2821907E+01 + .9252425E+04 .2826751E+01 + .9255655E+04 .2834598E+01 + .9258889E+04 .2837595E+01 + .9262171E+04 .2852731E+01 + .9265454E+04 .2884891E+01 + .9268787E+04 .2914335E+01 + .9272122E+04 .2934046E+01 + .9275459E+04 .2943820E+01 + .9278800E+04 .2944769E+01 + .9282188E+04 .2942882E+01 + .9285580E+04 .2952354E+01 + .9289021E+04 .2967295E+01 + .9292465E+04 .2986871E+01 + .9295910E+04 .3003432E+01 + .9299404E+04 .2981879E+01 + .9302949E+04 .2933500E+01 + .9306403E+04 .2889045E+01 + .9309953E+04 .2840568E+01 + .9313506E+04 .2796097E+01 + .9317061E+04 .2775838E+01 + .9320666E+04 .2781760E+01 + .9324320E+04 .2801508E+01 + .9327932E+04 .2816890E+01 + .9331592E+04 .2803144E+01 + .9335256E+04 .2763032E+01 + .9338922E+04 .2711823E+01 + .9342639E+04 .2687955E+01 + .9346358E+04 .2711813E+01 + .9350128E+04 .2737134E+01 + .9353900E+04 .2737934E+01 + .9357677E+04 .2748922E+01 + .9361455E+04 .2765675E+01 + .9365285E+04 .2773098E+01 + .9369165E+04 .2781047E+01 + .9373048E+04 .2789819E+01 + .9376840E+04 .2797477E+01 + .9380777E+04 .2804734E+01 + .9384671E+04 .2809786E+01 + .9388614E+04 .2812114E+01 + .9392563E+04 .2813700E+01 + .9396561E+04 .2814358E+01 + .9400515E+04 .2809979E+01 + .9404567E+04 .2793399E+01 + .9408576E+04 .2760490E+01 + .9412637E+04 .2718249E+01 + .9416700E+04 .2683656E+01 + .9420768E+04 .2671065E+01 + .9424935E+04 .2671632E+01 + .9429010E+04 .2681260E+01 + .9433184E+04 .2696438E+01 + .9437313E+04 .2704987E+01 + .9441495E+04 .2701200E+01 + .9445729E+04 .2686653E+01 + .9449966E+04 .2657398E+01 + .9454208E+04 .2628573E+01 + .9458453E+04 .2623585E+01 + .9462702E+04 .2633209E+01 + .9467004E+04 .2630277E+01 + .9471358E+04 .2616724E+01 + .9475668E+04 .2610234E+01 + .9480029E+04 .2609877E+01 + .9484396E+04 .2618066E+01 + .9488814E+04 .2632820E+01 + .9493189E+04 .2645850E+01 + .9497665E+04 .2661480E+01 + .9502097E+04 .2680759E+01 + .9506581E+04 .2696983E+01 + .9511118E+04 .2702235E+01 + .9515563E+04 .2694176E+01 + .9520109E+04 .2669260E+01 + .9524611E+04 .2625398E+01 + .9529265E+04 .2580381E+01 + .9533775E+04 .2561563E+01 + .9538438E+04 .2556394E+01 + .9543007E+04 .2555007E+01 + .9547679E+04 .2552842E+01 + .9552306E+04 .2553917E+01 + .9556986E+04 .2558074E+01 + .9561673E+04 .2558972E+01 + .9566462E+04 .2552003E+01 + .9571157E+04 .2546721E+01 + .9575956E+04 .2543460E+01 + .9580661E+04 .2535349E+01 + .9585470E+04 .2517931E+01 + .9590283E+04 .2509453E+01 + .9595102E+04 .2508878E+01 + .9599976E+04 .2507338E+01 + .9604854E+04 .2511822E+01 + .9609737E+04 .2515893E+01 + .9614625E+04 .2514758E+01 + .9619568E+04 .2514053E+01 + .9624518E+04 .2518860E+01 + .9629471E+04 .2526326E+01 + .9634431E+04 .2524162E+01 + .9639445E+04 .2515393E+01 + .9644466E+04 .2505588E+01 + .9649541E+04 .2495945E+01 + .9654571E+04 .2489619E+01 + .9659708E+04 .2480515E+01 + .9664750E+04 .2465866E+01 + .9669847E+04 .2454911E+01 + .9675001E+04 .2448600E+01 + .9680159E+04 .2444625E+01 + .9685324E+04 .2444391E+01 + .9690545E+04 .2438542E+01 + .9695722E+04 .2425891E+01 + .9700953E+04 .2421363E+01 + .9706243E+04 .2420298E+01 + .9711486E+04 .2415727E+01 + .9716788E+04 .2406582E+01 + .9722094E+04 .2399528E+01 + .9727407E+04 .2394548E+01 + .9732776E+04 .2385773E+01 + .9738204E+04 .2384001E+01 + .9743535E+04 .2385557E+01 + .9748923E+04 .2387176E+01 + .9754317E+04 .2393320E+01 + .9759769E+04 .2393286E+01 + .9765227E+04 .2390265E+01 + .9770742E+04 .2386799E+01 + .9776212E+04 .2377775E+01 + .9781793E+04 .2363987E+01 + .9787275E+04 .2354141E+01 + .9792816E+04 .2352211E+01 + .9798416E+04 .2352589E+01 + .9804022E+04 .2351565E+01 + .9809584E+04 .2349586E+01 + .9815254E+04 .2343184E+01 + .9820880E+04 .2331066E+01 + .9826564E+04 .2319885E+01 + .9832308E+04 .2309800E+01 + .9837953E+04 .2302536E+01 + .9843659E+04 .2298680E+01 + .9849422E+04 .2294200E+01 + .9855192E+04 .2287658E+01 + .9860971E+04 .2282896E+01 + .9866755E+04 .2277700E+01 + .9872600E+04 .2273120E+01 + .9878450E+04 .2271066E+01 + .9884310E+04 .2266972E+01 + .9890175E+04 .2263576E+01 + .9896100E+04 .2263998E+01 + .9901980E+04 .2264150E+01 + .9907920E+04 .2261573E+01 + .9913867E+04 .2257439E+01 + .9919876E+04 .2252447E+01 + .9925838E+04 .2245956E+01 + .9931859E+04 .2240462E+01 + .9937890E+04 .2235462E+01 + .9943980E+04 .2228760E+01 + .9950025E+04 .2219993E+01 + .9956132E+04 .2213546E+01 + .9962300E+04 .2207783E+01 + .9968367E+04 .2204902E+01 + .9974497E+04 .2202134E+01 + .9980687E+04 .2199268E+01 + .9986832E+04 .2191243E+01 + .9993038E+04 .2184893E+01 + .9999253E+04 .2181988E+01 + .1000553E+05 .2175889E+01 + .1001176E+05 .2168400E+01 + .1001805E+05 .2161425E+01 + .1002435E+05 .2155688E+01 + .1003066E+05 .2151178E+01 + .1003703E+05 .2145570E+01 + .1004336E+05 .2139351E+01 + .1004974E+05 .2135055E+01 + .1005614E+05 .2131782E+01 + .1006254E+05 .2131762E+01 + .1006896E+05 .2132080E+01 + .1007543E+05 .2127986E+01 + .1008192E+05 .2122787E+01 + .1008846E+05 .2116560E+01 + .1009491E+05 .2112059E+01 + .1010142E+05 .2107203E+01 + .1010794E+05 .2101453E+01 + .1011452E+05 .2094787E+01 + .1012111E+05 .2089134E+01 + .1012771E+05 .2082759E+01 + .1013432E+05 .2078182E+01 + .1014105E+05 .2073463E+01 + .1014768E+05 .2068076E+01 + .1015431E+05 .2063473E+01 + .1016101E+05 .2061048E+01 + .1016778E+05 .2055853E+01 + .1017449E+05 .2049533E+01 + .1018128E+05 .2042940E+01 + .1018807E+05 .2036571E+01 + .1019482E+05 .2031228E+01 + .1020163E+05 .2026054E+01 + .1020845E+05 .2021201E+01 + .1021528E+05 .2017216E+01 + .1022217E+05 .2014019E+01 + .1022913E+05 .2011350E+01 + .1023599E+05 .2007960E+01 + .1024286E+05 .2003555E+01 + .1024985E+05 .1997455E+01 + .1025679E+05 .1991910E+01 + .1026380E+05 .1988298E+01 + .1027082E+05 .1983455E+01 + .1027785E+05 .1978791E+01 + .1028489E+05 .1974810E+01 + .1029188E+05 .1969660E+01 + .1029905E+05 .1964434E+01 + .1030612E+05 .1960277E+01 + .1031320E+05 .1955222E+01 + .1032041E+05 .1949610E+01 + .1032750E+05 .1943582E+01 + .1033473E+05 .1937461E+01 + .1034185E+05 .1931902E+01 + .1034909E+05 .1926781E+01 + .1035635E+05 .1922293E+01 + .1036361E+05 .1918179E+01 + .1037089E+05 .1913225E+01 + .1037817E+05 .1908101E+01 + .1038547E+05 .1902590E+01 + .1039278E+05 .1897350E+01 + .1040010E+05 .1892302E+01 + .1040748E+05 .1888240E+01 + .1041482E+05 .1884945E+01 + .1042223E+05 .1880880E+01 + .1042965E+05 .1875209E+01 + .1043714E+05 .1869117E+01 + .1044458E+05 .1864810E+01 + .1045203E+05 .1859730E+01 + .1045955E+05 .1854703E+01 + .1046708E+05 .1850927E+01 + .1047463E+05 .1846062E+01 + .1048218E+05 .1841454E+01 + .1048975E+05 .1836949E+01 + .1049732E+05 .1832029E+01 + .1050497E+05 .1827266E+01 + .1051257E+05 .1822091E+01 + .1052024E+05 .1816615E+01 + .1052792E+05 .1811286E+01 + .1053562E+05 .1806091E+01 + .1054332E+05 .1801056E+01 + .1055104E+05 .1795975E+01 + .1055877E+05 .1790457E+01 + .1056650E+05 .1784985E+01 + .1057432E+05 .1779817E+01 + .1058220E+05 .1774830E+01 + .1058991E+05 .1770077E+01 + .1059776E+05 .1765584E+01 + .1060562E+05 .1761346E+01 + .1061355E+05 .1756188E+01 + .1062143E+05 .1751146E+01 + .1062933E+05 .1745866E+01 + .1063730E+05 .1741325E+01 + .1064521E+05 .1736995E+01 + .1065321E+05 .1732137E+01 + .1066121E+05 .1727265E+01 + .1066923E+05 .1722011E+01 + .1067726E+05 .1716960E+01 + .1068530E+05 .1711949E+01 + .1069335E+05 .1707255E+01 + .1070154E+05 .1702657E+01 + .1070956E+05 .1698036E+01 + .1071771E+05 .1692923E+01 + .1072581E+05 .1688424E+01 + .1073399E+05 .1683495E+01 + .1074224E+05 .1678441E+01 + .1075038E+05 .1673326E+01 + .1075860E+05 .1668216E+01 + .1076683E+05 .1662904E+01 + .1077514E+05 .1657390E+01 + .1078339E+05 .1652672E+01 + .1079172E+05 .1647545E+01 + .1080000E+05 .1642962E+01 + .1080836E+05 .1638716E+01 + .1081673E+05 .1634322E+01 + .1082505E+05 .1629474E+01 + .1083345E+05 .1624254E+01 + .1084186E+05 .1619885E+01 + .1085041E+05 .1614815E+01 + .1085878E+05 .1610030E+01 + .1086723E+05 .1605274E+01 + .1087576E+05 .1600137E+01 + .1088423E+05 .1595601E+01 + .1089285E+05 .1590329E+01 + .1090129E+05 .1585683E+01 + .1090994E+05 .1580797E+01 + .1091847E+05 .1576162E+01 + .1092708E+05 .1571243E+01 + .1093570E+05 .1566459E+01 + .1094440E+05 .1561783E+01 + .1095299E+05 .1556788E+01 + .1096165E+05 .1551967E+01 + .1097040E+05 .1546871E+01 + .1097909E+05 .1541756E+01 + .1098786E+05 .1536987E+01 + .1099665E+05 .1531856E+01 + .1100532E+05 .1527318E+01 + .1101414E+05 .1522359E+01 + .1102297E+05 .1517451E+01 + .1103181E+05 .1512805E+01 + .1104067E+05 .1507971E+01 + .1104954E+05 .1503313E+01 + .1105843E+05 .1498878E+01 + .1106733E+05 .1493591E+01 + .1107625E+05 .1489248E+01 + .1108518E+05 .1484389E+01 + .1109412E+05 .1479586E+01 + .1110315E+05 .1475953E+01 + .1111213E+05 .1470389E+01 + .1112125E+05 .1465458E+01 + .1113019E+05 .1460824E+01 + .1113934E+05 .1456106E+01 + .1114838E+05 .1451418E+01 + .1115743E+05 .1446648E+01 + .1116656E+05 .1441941E+01 + .1117578E+05 .1437189E+01 + .1118487E+05 .1432610E+01 + .1119405E+05 .1427790E+01 + .1120331E+05 .1422876E+01 + .1121245E+05 .1418740E+01 + .1122168E+05 .1413546E+01 + .1123098E+05 .1408856E+01 + .1124017E+05 .1404290E+01 + .1124951E+05 .1399685E+01 + .1125880E+05 .1395006E+01 + .1126817E+05 .1390236E+01 + .1127755E+05 .1385646E+01 + .1128682E+05 .1381390E+01 + .1129624E+05 .1376596E+01 + .1130560E+05 .1371654E+01 + .1131505E+05 .1367242E+01 + .1132452E+05 .1362544E+01 + .1133393E+05 .1358360E+01 + .1134343E+05 .1353479E+01 + .1135294E+05 .1349326E+01 + .1136247E+05 .1344309E+01 diff --git a/tests/test_SeparatorsWithoutSpace.py b/tests/test_SeparatorsWithoutSpace.py new file mode 100644 index 0000000..7b37a05 --- /dev/null +++ b/tests/test_SeparatorsWithoutSpace.py @@ -0,0 +1,39 @@ +import os +import unittest + +from xdi_validator import validate + + +class TestSeparatorsWithoutSpace(unittest.TestCase): + """The header-end and field-end lines need no space after the '#'. + + The specification defines each as + + comment token + separator token + end-of-line token + + where the separator token is "three or more" dashes or slashes. No + whitespace token sits between the comment token and the separator, + so a file written "#-----" conforms. 258 of the 272 files in the XDI + Data Library are written that way, and every one of them was + rejected before this. + """ + + def setUp(self): + here = os.path.dirname(__file__) + self.unspaced = open(here + "/separators_without_space.xdi", "r") + self.spaced = open( + os.path.dirname(here) + "/valid.xdi", "r") + + def tearDown(self): + self.unspaced.close() + self.spaced.close() + + def test_unspaced_separators_are_accepted(self): + errors, obj = validate(self.unspaced) + self.assertEqual(errors, {}) + self.assertIn("scan", obj) + + def test_spaced_separators_still_accepted(self): + """The form the specification illustrates must keep working.""" + errors, _obj = validate(self.spaced) + self.assertEqual(errors, {}) diff --git a/xdi_validator/XDI_validator.py b/xdi_validator/XDI_validator.py index 845b857..7a2e676 100644 --- a/xdi_validator/XDI_validator.py +++ b/xdi_validator/XDI_validator.py @@ -83,8 +83,16 @@ def __cast_to_number(word:str): regex_version = r"^# XDI/(?P\d+)\.(?P\d+)\.?(?P\d*)\s+?(?P[\w\W\D]*)$" regex_fields = r"^# (?P\w+)\.(?P\w+):\s*(?P[\w\W\s*]+)\n$" - regex_fields_end = r"^#\s+///(/*)$" - regex_header_end = r"^#\s+---(-*)$" + # The specification defines these two separators as + # comment token + separator token + end-of-line token + # where the separator token is "three or more" slashes or dashes. + # No whitespace token sits between the comment token and the + # separator token, so requiring one (\s+) rejects a conforming file. + # The spec's illustrative examples happen to show a space, but the + # grammar above them does not call for it, and 258 of the 272 files + # in the XDI Data Library write the header-end line as "#-----". + regex_fields_end = r"^#\s*/{3,}$" + regex_header_end = r"^#\s*-{3,}$" regex_comment = r"#\s+((\w*\W*\s*)+)" regex_float = r"([+-]?(?=\.\d|\d)(?:\d+)?(?:\.?\d*))(?:[Ee]([+-]?\d+))?" regex_annotation_line = r"(\s*\w+)"