Skip to content

Commit 8459951

Browse files
authored
Merge pull request #907 from Mathics3/move_private_doctests_to_pytest4
Move private doctests to pytest4
2 parents 1a03e36 + b6be627 commit 8459951

File tree

14 files changed

+1464
-1026
lines changed

14 files changed

+1464
-1026
lines changed

mathics/builtin/binary/io.py

Lines changed: 0 additions & 373 deletions
Original file line numberDiff line numberDiff line change
@@ -379,217 +379,6 @@ class BinaryRead(Builtin):
379379
>> BinaryRead[strm, {"Character8", "Character8", "Character8"}]
380380
= {a, b, c}
381381
>> DeleteFile[Close[strm]];
382-
383-
## Write as Bytes then Read
384-
#> WbR[bytes_, form_] := Module[{stream, res}, stream = OpenWrite[BinaryFormat -> True]; BinaryWrite[stream, bytes]; stream = OpenRead[Close[stream], BinaryFormat -> True]; res = BinaryRead[stream, form]; DeleteFile[Close[stream]]; res]
385-
386-
## Byte
387-
#> WbR[{149, 2, 177, 132}, {"Byte", "Byte", "Byte", "Byte"}]
388-
= {149, 2, 177, 132}
389-
#> (# == WbR[#, Table["Byte", {50}]]) & [RandomInteger[{0, 255}, 50]]
390-
= True
391-
392-
## Character8
393-
#> WbR[{97, 98, 99}, {"Character8", "Character8", "Character8"}]
394-
= {a, b, c}
395-
#> WbR[{34, 60, 39}, {"Character8", "Character8", "Character8"}]
396-
= {", <, '}
397-
398-
## Character16
399-
#> WbR[{97, 0, 98, 0, 99, 0}, {"Character16", "Character16", "Character16"}]
400-
= {a, b, c}
401-
#> ToCharacterCode[WbR[{50, 154, 182, 236}, {"Character16", "Character16"}]]
402-
= {{39474}, {60598}}
403-
## #> WbR[ {91, 146, 206, 54}, {"Character16", "Character16"}]
404-
## = {\\:925b, \\:36ce}
405-
406-
## Complex64
407-
#> WbR[{80, 201, 77, 239, 201, 177, 76, 79}, "Complex64"] // InputForm
408-
= -6.368779889243691*^28 + 3.434203392*^9*I
409-
#> % // Precision
410-
= MachinePrecision
411-
#> WbR[{158, 2, 185, 232, 18, 237, 0, 102}, "Complex64"] // InputForm
412-
= -6.989488623351118*^24 + 1.522090212973691*^23*I
413-
#> WbR[{195, 142, 38, 160, 238, 252, 85, 188}, "Complex64"] // InputForm
414-
= -1.4107982814807285*^-19 - 0.013060791417956352*I
415-
416-
## Complex128
417-
#> WbR[{15,114,1,163,234,98,40,15,214,127,116,15,48,57,208,180},"Complex128"] // InputForm
418-
= 1.1983977035653814*^-235 - 2.6465639149433955*^-54*I
419-
#> WbR[{148,119,12,126,47,94,220,91,42,69,29,68,147,11,62,233},"Complex128"] // InputForm
420-
= 3.2217026714156333*^134 - 8.98364297498066*^198*I
421-
#> % // Precision
422-
= MachinePrecision
423-
#> WbR[{15,42,80,125,157,4,38,97, 0,0,0,0,0,0,240,255}, "Complex128"]
424-
= -I Infinity
425-
#> WbR[{15,42,80,125,157,4,38,97, 0,0,0,0,0,0,240,127}, "Complex128"]
426-
= I Infinity
427-
#> WbR[{15,42,80,125,157,4,38,97, 1,0,0,0,0,0,240,255}, "Complex128"]
428-
= Indeterminate
429-
#> WbR[{0,0,0,0,0,0,240,127, 15,42,80,125,157,4,38,97}, "Complex128"]
430-
= Infinity
431-
#> WbR[{0,0,0,0,0,0,240,255, 15,42,80,125,157,4,38,97}, "Complex128"]
432-
= -Infinity
433-
#> WbR[{1,0,0,0,0,0,240,255, 15,42,80,125,157,4,38,97}, "Complex128"]
434-
= Indeterminate
435-
#> WbR[{0,0,0,0,0,0,240,127, 0,0,0,0,0,0,240,127}, "Complex128"]
436-
= Indeterminate
437-
#> WbR[{0,0,0,0,0,0,240,127, 0,0,0,0,0,0,240,255}, "Complex128"]
438-
= Indeterminate
439-
440-
## Complex256
441-
## TODO
442-
443-
## Integer8
444-
#> WbR[{149, 2, 177, 132}, {"Integer8", "Integer8", "Integer8", "Integer8"}]
445-
= {-107, 2, -79, -124}
446-
#> WbR[{127, 128, 0, 255}, {"Integer8", "Integer8", "Integer8", "Integer8"}]
447-
= {127, -128, 0, -1}
448-
449-
## Integer16
450-
#> WbR[{149, 2, 177, 132, 112, 24}, {"Integer16", "Integer16", "Integer16"}]
451-
= {661, -31567, 6256}
452-
#> WbR[{0, 0, 255, 0, 255, 255, 128, 127, 128, 128}, Table["Integer16", {5}]]
453-
= {0, 255, -1, 32640, -32640}
454-
455-
## Integer24
456-
#> WbR[{152, 173, 160, 188, 207, 154}, {"Integer24", "Integer24"}]
457-
= {-6247016, -6631492}
458-
#> WbR[{145, 173, 231, 49, 90, 30}, {"Integer24", "Integer24"}]
459-
= {-1593967, 1989169}
460-
461-
## Integer32
462-
#> WbR[{209, 99, 23, 218, 143, 187, 236, 241}, {"Integer32", "Integer32"}]
463-
= {-636001327, -236143729}
464-
#> WbR[{15, 31, 173, 120, 245, 100, 18, 188}, {"Integer32", "Integer32"}]
465-
= {2024611599, -1139645195}
466-
467-
## Integer64
468-
#> WbR[{211, 18, 152, 2, 235, 102, 82, 16}, "Integer64"]
469-
= 1176115612243989203
470-
#> WbR[{37, 217, 208, 88, 14, 241, 170, 137}, "Integer64"]
471-
= -8526737900550694619
472-
473-
## Integer128
474-
#> WbR[{140,32,24,199,10,169,248,117,123,184,75,76,34,206,49,105}, "Integer128"]
475-
= 139827542997232652313568968616424513676
476-
#> WbR[{101,57,184,108,43,214,186,120,153,51,132,225,56,165,209,77}, "Integer128"]
477-
= 103439096823027953602112616165136677221
478-
#> WbR[{113,100,125,144,211,83,140,24,206,11,198,118,222,152,23,219}, "Integer128"]
479-
= -49058912464625098822365387707690163087
480-
481-
## Real32
482-
#> WbR[{81, 72, 250, 79, 52, 227, 104, 90}, {"Real32", "Real32"}] // InputForm
483-
= {8.398086656*^9, 1.6388001768669184*^16}
484-
#> WbR[{251, 22, 221, 117, 165, 245, 18, 75}, {"Real32", "Real32"}] // InputForm
485-
= {5.605291528399748*^32, 9.631141*^6}
486-
#> WbR[{126, 82, 143, 43}, "Real32"] // InputForm
487-
= 1.0183657302847982*^-12
488-
#> % // Precision
489-
= MachinePrecision
490-
#> WbR[{0, 0, 128, 127}, "Real32"]
491-
= Infinity
492-
#> WbR[{0, 0, 128, 255}, "Real32"]
493-
= -Infinity
494-
#> WbR[{1, 0, 128, 255}, "Real32"]
495-
= Indeterminate
496-
#> WbR[{1, 0, 128, 127}, "Real32"]
497-
= Indeterminate
498-
499-
## Real64
500-
#> WbR[{45, 243, 20, 87, 129, 185, 53, 239}, "Real64"] // InputForm
501-
= -5.146466194262116*^227
502-
#> WbR[{192, 60, 162, 67, 122, 71, 74, 196}, "Real64"] // InputForm
503-
= -9.695316988087658*^20
504-
#> WbR[{15, 42, 80, 125, 157, 4, 38, 97}, "Real64"] // InputForm
505-
= 9.67355569763742*^159
506-
#> % // Precision
507-
= MachinePrecision
508-
#> WbR[{0, 0, 0, 0, 0, 0, 240, 127}, "Real64"]
509-
= Infinity
510-
#> WbR[{0, 0, 0, 0, 0, 0, 240, 255}, "Real64"]
511-
= -Infinity
512-
#> WbR[{1, 0, 0, 0, 0, 0, 240, 127}, "Real64"]
513-
= Indeterminate
514-
#> WbR[{1, 0, 0, 0, 0, 0, 240, 255}, "Real64"]
515-
= Indeterminate
516-
517-
## Real128
518-
## 0x0000
519-
#> WbR[{0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0}, "Real128"]
520-
= 0.×10^-4965
521-
#> WbR[{0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,128}, "Real128"]
522-
= 0.×10^-4965
523-
## 0x0001 - 0x7FFE
524-
#> WbR[{0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,255,63}, "Real128"]
525-
= 1.00000000000000000000000000000000
526-
#> WbR[{0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,255,191}, "Real128"]
527-
= -1.00000000000000000000000000000000
528-
#> WbR[{135, 62, 233, 137, 22, 208, 233, 210, 133, 82, 251, 92, 220, 216, 255, 63}, "Real128"]
529-
= 1.84711247573661489653389674493896
530-
#> WbR[{135, 62, 233, 137, 22, 208, 233, 210, 133, 82, 251, 92, 220, 216, 207, 72}, "Real128"]
531-
= 2.45563355727491021879689747166252×10^679
532-
#> WbR[{74, 95, 30, 234, 116, 130, 1, 84, 20, 133, 245, 221, 113, 110, 219, 212}, "Real128"]
533-
= -4.52840681592341879518366539335138×10^1607
534-
#> % // Precision
535-
= 33.
536-
## 0x7FFF
537-
#> WbR[{0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,255,127}, "Real128"]
538-
= Infinity
539-
#> WbR[{0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,255,255}, "Real128"]
540-
= -Infinity
541-
#> WbR[{1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,255,127}, "Real128"]
542-
= Indeterminate
543-
#> WbR[{1,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,255,255}, "Real128"]
544-
= Indeterminate
545-
546-
## TerminatedString
547-
#> WbR[{97, 98, 99, 0}, "TerminatedString"]
548-
= abc
549-
#> WbR[{49, 50, 51, 0, 52, 53, 54, 0, 55, 56, 57}, Table["TerminatedString", {3}]]
550-
= {123, 456, EndOfFile}
551-
#> WbR[{0}, "TerminatedString"] // InputForm
552-
= ""
553-
554-
## UnsignedInteger8
555-
#> WbR[{96, 94, 141, 162, 141}, Table["UnsignedInteger8", {5}]]
556-
= {96, 94, 141, 162, 141}
557-
#> (#==WbR[#,Table["UnsignedInteger8",{50}]])&[RandomInteger[{0, 255}, 50]]
558-
= True
559-
560-
## UnsignedInteger16
561-
#> WbR[{54, 71, 106, 185, 147, 38, 5, 231}, Table["UnsignedInteger16", {4}]]
562-
= {18230, 47466, 9875, 59141}
563-
#> WbR[{0, 0, 128, 128, 255, 255}, Table["UnsignedInteger16", {3}]]
564-
= {0, 32896, 65535}
565-
566-
## UnsignedInteger24
567-
#> WbR[{78, 35, 226, 225, 84, 236}, Table["UnsignedInteger24", {2}]]
568-
= {14820174, 15488225}
569-
#> WbR[{165, 2, 82, 239, 88, 59}, Table["UnsignedInteger24", {2}]]
570-
= {5374629, 3889391}
571-
572-
## UnsignedInteger32
573-
#> WbR[{213,143,98,112,141,183,203,247}, Table["UnsignedInteger32", {2}]]
574-
= {1885507541, 4157323149}
575-
#> WbR[{148,135,230,22,136,141,234,99}, Table["UnsignedInteger32", {2}]]
576-
= {384206740, 1676316040}
577-
578-
## UnsignedInteger64
579-
#> WbR[{95, 5, 33, 229, 29, 62, 63, 98}, "UnsignedInteger64"]
580-
= 7079445437368829279
581-
#> WbR[{134, 9, 161, 91, 93, 195, 173, 74}, "UnsignedInteger64"]
582-
= 5381171935514265990
583-
584-
## UnsignedInteger128
585-
#> WbR[{108,78,217,150,88,126,152,101,231,134,176,140,118,81,183,220}, "UnsignedInteger128"]
586-
= 293382001665435747348222619884289871468
587-
#> WbR[{53,83,116,79,81,100,60,126,202,52,241,48,5,113,92,190}, "UnsignedInteger128"]
588-
= 253033302833692126095975097811212718901
589-
590-
## EndOfFile
591-
#> WbR[{148}, {"Integer32", "Integer32","Integer32"}]
592-
= {EndOfFile, EndOfFile, EndOfFile}
593382
"""
594383

595384
summary_text = "read an object of the specified type"
@@ -725,168 +514,6 @@ class BinaryWrite(Builtin):
725514
>> BinaryWrite[strm, {97, 98, 99}, {"Byte", "Byte", "Byte"}]
726515
= OutputStream[...]
727516
>> DeleteFile[Close[%]];
728-
729-
## Write then Read as Bytes
730-
#> WRb[bytes_, form_] := Module[{stream, res={}, byte}, stream = OpenWrite[BinaryFormat -> True]; BinaryWrite[stream, bytes, form]; stream = OpenRead[Close[stream], BinaryFormat -> True]; While[Not[SameQ[byte = BinaryRead[stream], EndOfFile]], res = Join[res, {byte}];]; DeleteFile[Close[stream]]; res]
731-
732-
## Byte
733-
#> WRb[{149, 2, 177, 132}, {"Byte", "Byte", "Byte", "Byte"}]
734-
= {149, 2, 177, 132}
735-
#> WRb[{149, 2, 177, 132}, {"Byte", "Byte", "Byte", "Byte"}]
736-
= {149, 2, 177, 132}
737-
#> (# == WRb[#, Table["Byte", {50}]]) & [RandomInteger[{0, 255}, 50]]
738-
= True
739-
740-
## Character8
741-
#> WRb[{"a", "b", "c"}, {"Character8", "Character8", "Character8"}]
742-
= {97, 98, 99}
743-
#> WRb[{34, 60, 39}, {"Character8", "Character8", "Character8"}]
744-
= {51, 52, 54, 48, 51, 57}
745-
#> WRb[{"ab", "c", "d"}, {"Character8", "Character8", "Character8", "Character8"}]
746-
= {97, 98, 99, 100}
747-
748-
## Character16
749-
## TODO
750-
751-
## Complex64
752-
#> WRb[-6.36877988924*^28 + 3.434203392*^9 I, "Complex64"]
753-
= {80, 201, 77, 239, 201, 177, 76, 79}
754-
#> WRb[-6.98948862335*^24 + 1.52209021297*^23 I, "Complex64"]
755-
= {158, 2, 185, 232, 18, 237, 0, 102}
756-
#> WRb[-1.41079828148*^-19 - 0.013060791418 I, "Complex64"]
757-
= {195, 142, 38, 160, 238, 252, 85, 188}
758-
#> WRb[{5, -2054}, "Complex64"]
759-
= {0, 0, 160, 64, 0, 0, 0, 0, 0, 96, 0, 197, 0, 0, 0, 0}
760-
#> WRb[Infinity, "Complex64"]
761-
= {0, 0, 128, 127, 0, 0, 0, 0}
762-
#> WRb[-Infinity, "Complex64"]
763-
= {0, 0, 128, 255, 0, 0, 0, 0}
764-
#> WRb[DirectedInfinity[1 + I], "Complex64"]
765-
= {0, 0, 128, 127, 0, 0, 128, 127}
766-
#> WRb[DirectedInfinity[I], "Complex64"]
767-
= {0, 0, 0, 0, 0, 0, 128, 127}
768-
## FIXME (different convention to MMA)
769-
#> WRb[Indeterminate, "Complex64"]
770-
= {0, 0, 192, 127, 0, 0, 192, 127}
771-
772-
## Complex128
773-
#> WRb[1.19839770357*^-235 - 2.64656391494*^-54 I,"Complex128"]
774-
= {102, 217, 1, 163, 234, 98, 40, 15, 243, 104, 116, 15, 48, 57, 208, 180}
775-
#> WRb[3.22170267142*^134 - 8.98364297498*^198 I,"Complex128"]
776-
= {219, 161, 12, 126, 47, 94, 220, 91, 189, 66, 29, 68, 147, 11, 62, 233}
777-
#> WRb[-Infinity, "Complex128"]
778-
= {0, 0, 0, 0, 0, 0, 240, 255, 0, 0, 0, 0, 0, 0, 0, 0}
779-
#> WRb[DirectedInfinity[1 - I], "Complex128"]
780-
= {0, 0, 0, 0, 0, 0, 240, 127, 0, 0, 0, 0, 0, 0, 240, 255}
781-
#> WRb[DirectedInfinity[I], "Complex128"]
782-
= {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 127}
783-
## FIXME (different convention to MMA)
784-
#> WRb[Indeterminate, "Complex128"]
785-
= {0, 0, 0, 0, 0, 0, 248, 127, 0, 0, 0, 0, 0, 0, 248, 127}
786-
787-
## Complex256
788-
## TODO
789-
790-
## Integer8
791-
#> WRb[{5, 2, 11, -4}, {"Integer8", "Integer8", "Integer8", "Integer8"}]
792-
= {5, 2, 11, 252}
793-
#> WRb[{127, -128, 0}, {"Integer8", "Integer8", "Integer8"}]
794-
= {127, 128, 0}
795-
796-
## Integer16
797-
#> WRb[{661, -31567, 6256}, {"Integer16", "Integer16", "Integer16"}]
798-
= {149, 2, 177, 132, 112, 24}
799-
#> WRb[{0, 255, -1, 32640, -32640}, Table["Integer16", {5}]]
800-
= {0, 0, 255, 0, 255, 255, 128, 127, 128, 128}
801-
802-
## Integer24
803-
#> WRb[{-6247016, -6631492}, {"Integer24", "Integer24"}]
804-
= {152, 173, 160, 188, 207, 154}
805-
#> WRb[{-1593967, 1989169}, {"Integer24", "Integer24"}]
806-
= {145, 173, 231, 49, 90, 30}
807-
808-
## Integer32
809-
#> WRb[{-636001327, -236143729}, {"Integer32", "Integer32"}]
810-
= {209, 99, 23, 218, 143, 187, 236, 241}
811-
#> WRb[{2024611599, -1139645195}, {"Integer32", "Integer32"}]
812-
= {15, 31, 173, 120, 245, 100, 18, 188}
813-
814-
## Integer64
815-
#> WRb[{1176115612243989203}, "Integer64"]
816-
= {211, 18, 152, 2, 235, 102, 82, 16}
817-
#> WRb[{-8526737900550694619}, "Integer64"]
818-
= {37, 217, 208, 88, 14, 241, 170, 137}
819-
820-
## Integer128
821-
#> WRb[139827542997232652313568968616424513676, "Integer128"]
822-
= {140, 32, 24, 199, 10, 169, 248, 117, 123, 184, 75, 76, 34, 206, 49, 105}
823-
#> WRb[103439096823027953602112616165136677221, "Integer128"]
824-
= {101, 57, 184, 108, 43, 214, 186, 120, 153, 51, 132, 225, 56, 165, 209, 77}
825-
#> WRb[-49058912464625098822365387707690163087, "Integer128"]
826-
= {113, 100, 125, 144, 211, 83, 140, 24, 206, 11, 198, 118, 222, 152, 23, 219}
827-
828-
## Real32
829-
#> WRb[{8.398086656*^9, 1.63880017681*^16}, {"Real32", "Real32"}]
830-
= {81, 72, 250, 79, 52, 227, 104, 90}
831-
#> WRb[{5.6052915284*^32, 9.631141*^6}, {"Real32", "Real32"}]
832-
= {251, 22, 221, 117, 165, 245, 18, 75}
833-
#> WRb[Infinity, "Real32"]
834-
= {0, 0, 128, 127}
835-
#> WRb[-Infinity, "Real32"]
836-
= {0, 0, 128, 255}
837-
## FIXME (different convention to MMA)
838-
#> WRb[Indeterminate, "Real32"]
839-
= {0, 0, 192, 127}
840-
841-
## Real64
842-
#> WRb[-5.14646619426*^227, "Real64"]
843-
= {91, 233, 20, 87, 129, 185, 53, 239}
844-
#> WRb[-9.69531698809*^20, "Real64"]
845-
= {187, 67, 162, 67, 122, 71, 74, 196}
846-
#> WRb[9.67355569764*^159, "Real64"]
847-
= {132, 48, 80, 125, 157, 4, 38, 97}
848-
#> WRb[Infinity, "Real64"]
849-
= {0, 0, 0, 0, 0, 0, 240, 127}
850-
#> WRb[-Infinity, "Real64"]
851-
= {0, 0, 0, 0, 0, 0, 240, 255}
852-
## FIXME (different convention to MMA)
853-
#> WRb[Indeterminate, "Real64"]
854-
= {0, 0, 0, 0, 0, 0, 248, 127}
855-
856-
## Real128
857-
## TODO
858-
859-
## TerminatedString
860-
#> WRb["abc", "TerminatedString"]
861-
= {97, 98, 99, 0}
862-
#> WRb[{"123", "456"}, {"TerminatedString", "TerminatedString", "TerminatedString"}]
863-
= {49, 50, 51, 0, 52, 53, 54, 0}
864-
#> WRb["", "TerminatedString"]
865-
= {0}
866-
867-
## UnsignedInteger8
868-
#> WRb[{96, 94, 141, 162, 141}, Table["UnsignedInteger8", {5}]]
869-
= {96, 94, 141, 162, 141}
870-
#> (#==WRb[#,Table["UnsignedInteger8",{50}]])&[RandomInteger[{0, 255}, 50]]
871-
= True
872-
873-
## UnsignedInteger16
874-
#> WRb[{18230, 47466, 9875, 59141}, Table["UnsignedInteger16", {4}]]
875-
= {54, 71, 106, 185, 147, 38, 5, 231}
876-
#> WRb[{0, 32896, 65535}, Table["UnsignedInteger16", {3}]]
877-
= {0, 0, 128, 128, 255, 255}
878-
879-
## UnsignedInteger24
880-
#> WRb[{14820174, 15488225}, Table["UnsignedInteger24", {2}]]
881-
= {78, 35, 226, 225, 84, 236}
882-
#> WRb[{5374629, 3889391}, Table["UnsignedInteger24", {2}]]
883-
= {165, 2, 82, 239, 88, 59}
884-
885-
## UnsignedInteger32
886-
#> WRb[{1885507541, 4157323149}, Table["UnsignedInteger32", {2}]]
887-
= {213, 143, 98, 112, 141, 183, 203, 247}
888-
#> WRb[{384206740, 1676316040}, Table["UnsignedInteger32", {2}]]
889-
= {148, 135, 230, 22, 136, 141, 234, 99}
890517
"""
891518

892519
summary_text = "write an object of the specified type"

0 commit comments

Comments
 (0)