| 833 | |
| 834 | #[test] |
| 835 | fn test_map_keys_values_append() { |
| 836 | let mut builder = MapBuilder::<Int64Builder, Int64Builder>::new( |
| 837 | None, |
| 838 | Int64Builder::with_capacity(32), |
| 839 | Int64Builder::with_capacity(32), |
| 840 | ); |
| 841 | let (keys, values) = builder.entries(); |
| 842 | keys.append_slice(&[1, 2, 3]); |
| 843 | values.append_slice(&[1, 3, 4]); |
| 844 | builder.append(true).unwrap(); |
| 845 | |
| 846 | let (keys, values) = builder.entries(); |
| 847 | keys.append_slice(&[4, 5]); |
| 848 | values.append_slice(&[4, 6]); |
| 849 | builder.append(true).unwrap(); |
| 850 | |
| 851 | builder.append(false).unwrap(); |
| 852 | |
| 853 | let map = builder.finish(); |
| 854 | assert!(map.is_null(2)); |
| 855 | |
| 856 | let first = map.value(0); |
| 857 | let keys = first |
| 858 | .column(0) |
| 859 | .as_any() |
| 860 | .downcast_ref::<Int64Array>() |
| 861 | .unwrap(); |
| 862 | let values = first |
| 863 | .column(1) |
| 864 | .as_any() |
| 865 | .downcast_ref::<Int64Array>() |
| 866 | .unwrap(); |
| 867 | assert_eq!(keys, &Int64Array::from(vec![Some(1), Some(2), Some(3)])); |
| 868 | assert_eq!(values, &Int64Array::from(vec![Some(1), Some(3), Some(4)])); |
| 869 | |
| 870 | let second = map.value(1); |
| 871 | let keys = second |
| 872 | .column(0) |
| 873 | .as_any() |
| 874 | .downcast_ref::<Int64Array>() |
| 875 | .unwrap(); |
| 876 | let values = second |
| 877 | .column(1) |
| 878 | .as_any() |
| 879 | .downcast_ref::<Int64Array>() |
| 880 | .unwrap(); |
| 881 | assert_eq!(keys, &Int64Array::from(vec![Some(4), Some(5)])); |
| 882 | assert_eq!(values, &Int64Array::from(vec![Some(4), Some(6)])); |
| 883 | } |
| 884 | |
| 885 | #[test] |
| 886 | fn test_list_of_strings_append() { |