@@ -691,103 +691,3 @@ impl TryFrom<BufferHandle> for SerializedArray {
691691 Self :: try_from ( value. try_to_host_sync ( ) ?)
692692 }
693693}
694-
695- #[ cfg( test) ]
696- mod tests {
697- use std:: sync:: LazyLock ;
698-
699- use flatbuffers:: FlatBufferBuilder ;
700- use vortex_session:: VortexSession ;
701- use vortex_session:: registry:: ReadContext ;
702-
703- use super :: SerializeOptions ;
704- use super :: SerializedArray ;
705- use crate :: ArrayContext ;
706- use crate :: array:: ArrayId ;
707- use crate :: dtype:: DType ;
708- use crate :: dtype:: Nullability ;
709- use crate :: flatbuffers as fba;
710- use crate :: session:: ArraySession ;
711- use crate :: session:: ArraySessionExt ;
712-
713- static SESSION : LazyLock < VortexSession > = LazyLock :: new ( VortexSession :: empty) ;
714-
715- #[ test]
716- fn unknown_array_encoding_allow_unknown ( ) {
717- let mut fbb = FlatBufferBuilder :: new ( ) ;
718-
719- let child_metadata = fbb. create_vector ( & [ 9u8 ] ) ;
720- let child = fba:: ArrayNode :: create (
721- & mut fbb,
722- & fba:: ArrayNodeArgs {
723- encoding : 1 ,
724- metadata : Some ( child_metadata) ,
725- children : None ,
726- buffers : None ,
727- stats : None ,
728- } ,
729- ) ;
730-
731- let children = fbb. create_vector ( & [ child] ) ;
732- let metadata = fbb. create_vector ( & [ 1u8 , 2 , 3 ] ) ;
733- let root = fba:: ArrayNode :: create (
734- & mut fbb,
735- & fba:: ArrayNodeArgs {
736- encoding : 0 ,
737- metadata : Some ( metadata) ,
738- children : Some ( children) ,
739- buffers : None ,
740- stats : None ,
741- } ,
742- ) ;
743- let array = fba:: Array :: create (
744- & mut fbb,
745- & fba:: ArrayArgs {
746- root : Some ( root) ,
747- buffers : None ,
748- } ,
749- ) ;
750- fbb. finish_minimal ( array) ;
751- let ( buf, start) = fbb. collapse ( ) ;
752- let tree = vortex_buffer:: ByteBuffer :: from ( buf) . slice ( start..) ;
753-
754- let ser = SerializedArray :: from_array_tree ( tree) . unwrap ( ) ;
755- let ctx = ReadContext :: new ( [
756- ArrayId :: new_ref ( "vortex.test.foreign_array" ) ,
757- ArrayId :: new_ref ( "vortex.test.foreign_child" ) ,
758- ] ) ;
759- let session = VortexSession :: empty ( )
760- . with :: < ArraySession > ( )
761- . allow_unknown ( ) ;
762-
763- let decoded = ser
764- . decode ( & DType :: Variant ( Nullability :: Nullable ) , 5 , & ctx, & session)
765- . unwrap ( ) ;
766- assert_eq ! ( decoded. encoding_id( ) . as_ref( ) , "vortex.test.foreign_array" ) ;
767- assert_eq ! ( decoded. nchildren( ) , 1 ) ;
768- assert_eq ! (
769- decoded. nth_child( 0 ) . unwrap( ) . encoding_id( ) . as_ref( ) ,
770- "vortex.test.foreign_child"
771- ) ;
772- assert_eq ! (
773- SESSION . array_serialize( & decoded) . unwrap( ) . unwrap( ) ,
774- vec![ 1 , 2 , 3 ]
775- ) ;
776- assert_eq ! (
777- SESSION
778- . array_serialize( & decoded. nth_child( 0 ) . unwrap( ) )
779- . unwrap( )
780- . unwrap( ) ,
781- vec![ 9 ]
782- ) ;
783-
784- let serialized = decoded
785- . serialize (
786- & ArrayContext :: default ( ) ,
787- & SESSION ,
788- & SerializeOptions :: default ( ) ,
789- )
790- . unwrap ( ) ;
791- assert ! ( !serialized. is_empty( ) ) ;
792- }
793- }
0 commit comments