use river_bsp_layout::BSPLayout; use river_layout_toolkit::Layout; #[test] fn test_handle_outer_gaps() { let mut bsp = BSPLayout::new(); bsp.set_all_outer_gaps(0); bsp.user_cmd("--outer-gap 5".to_string(), None, "").unwrap(); assert_eq!( (bsp.og_top, bsp.og_left, bsp.og_right, bsp.og_bottom), (5, 5, 5, 5) ); bsp.user_cmd("--og-top 10".to_string(), None, "").unwrap(); assert_eq!( (bsp.og_top, bsp.og_left, bsp.og_right, bsp.og_bottom), (10, 5, 5, 5) ); bsp.user_cmd("--og-left 10".to_string(), None, "").unwrap(); assert_eq!( (bsp.og_top, bsp.og_left, bsp.og_right, bsp.og_bottom), (10, 10, 5, 5) ); bsp.user_cmd("--og-right 10".to_string(), None, "").unwrap(); assert_eq!( (bsp.og_top, bsp.og_left, bsp.og_right, bsp.og_bottom), (10, 10, 10, 5) ); bsp.user_cmd("--og-bottom 10".to_string(), None, "") .unwrap(); assert_eq!( (bsp.og_top, bsp.og_left, bsp.og_right, bsp.og_bottom), (10, 10, 10, 10) ); bsp.user_cmd( "--og-top 0 --og-left 1 --og-right 2 --og-bottom 3".to_string(), None, "", ) .unwrap(); assert_eq!( (bsp.og_top, bsp.og_left, bsp.og_right, bsp.og_bottom), (0, 1, 2, 3) ); } #[test] fn test_handle_inner_gaps() { let mut bsp = BSPLayout::new(); bsp.user_cmd("--inner-gap 5".to_string(), None, "").unwrap(); bsp.set_all_inner_gaps(0); assert_eq!( (bsp.ig_top, bsp.ig_left, bsp.ig_right, bsp.ig_bottom), (0, 0, 0, 0) ); bsp.user_cmd("--ig-top 10".to_string(), None, "").unwrap(); assert_eq!( (bsp.ig_top, bsp.ig_left, bsp.ig_right, bsp.ig_bottom), (10, 0, 0, 0) ); bsp.user_cmd("--ig-left 10".to_string(), None, "").unwrap(); assert_eq!( (bsp.ig_top, bsp.ig_left, bsp.ig_right, bsp.ig_bottom), (10, 10, 0, 0) ); bsp.user_cmd("--ig-right 10".to_string(), None, "").unwrap(); assert_eq!( (bsp.ig_top, bsp.ig_left, bsp.ig_right, bsp.ig_bottom), (10, 10, 10, 0) ); bsp.user_cmd("--ig-bottom 10".to_string(), None, "") .unwrap(); assert_eq!( (bsp.ig_top, bsp.ig_left, bsp.ig_right, bsp.ig_bottom), (10, 10, 10, 10) ); bsp.user_cmd( "--ig-top 0 --ig-left 1 --ig-right 2 --ig-bottom 3".to_string(), None, "", ) .unwrap(); assert_eq!( (bsp.ig_top, bsp.ig_left, bsp.ig_right, bsp.ig_bottom), (0, 1, 2, 3) ); } #[test] fn test_handle_start_split() { let mut bsp = BSPLayout::new(); bsp.start_hsplit = false; bsp.user_cmd("--start-hsplit".to_string(), None, "") .unwrap(); assert!(bsp.start_hsplit); bsp.user_cmd("--start-vsplit".to_string(), None, "") .unwrap(); assert!(!bsp.start_hsplit); bsp.user_cmd("--start-vsplit --start-hsplit".to_string(), None, "") .unwrap_err(); } #[test] fn test_handle_set_split() { let mut bsp = BSPLayout::new(); bsp.vsplit_perc = 0.5; bsp.hsplit_perc = 0.5; bsp.user_cmd("--split-perc 0.6".to_string(), None, "") .unwrap(); assert_eq!(bsp.vsplit_perc, 0.6); assert_eq!(bsp.hsplit_perc, 0.6); bsp.user_cmd("--vsplit-perc 0.4".to_string(), None, "") .unwrap(); assert_eq!(bsp.vsplit_perc, 0.4); assert_eq!(bsp.hsplit_perc, 0.6); bsp.user_cmd("--hsplit-perc 0.3".to_string(), None, "") .unwrap(); assert_eq!(bsp.vsplit_perc, 0.4); assert_eq!(bsp.hsplit_perc, 0.3); bsp.user_cmd( "--split-perc 0.5 --hsplit-perc 0.2 --vsplit-perc 0.1".to_string(), None, "", ) .unwrap(); assert_eq!(bsp.vsplit_perc, 0.1); assert_eq!(bsp.hsplit_perc, 0.2); } #[test] fn test_handle_ch_split() { let mut bsp = BSPLayout::new(); bsp.vsplit_perc = 0.5; bsp.user_cmd("--inc-vsplit 0.3".to_string(), None, "") .unwrap(); assert_eq!(bsp.vsplit_perc, 0.8); bsp.user_cmd("--dec-vsplit 0.3".to_string(), None, "") .unwrap(); assert_eq!(bsp.vsplit_perc, 0.5); bsp.hsplit_perc = 0.5; bsp.user_cmd("--inc-hsplit 0.3".to_string(), None, "") .unwrap(); assert_eq!(bsp.hsplit_perc, 0.8); bsp.user_cmd("--dec-hsplit 0.3".to_string(), None, "") .unwrap(); assert_eq!(bsp.hsplit_perc, 0.5); bsp.user_cmd("--inc-hsplit 0.3 --inc-vsplit 0.3".to_string(), None, "") .unwrap(); assert_eq!((bsp.hsplit_perc, bsp.vsplit_perc), (0.8, 0.8)); } #[test] fn test_handle_reverse() { let mut bsp = BSPLayout::new(); bsp.reversed = false; bsp.user_cmd("--reverse".to_string(), None, "").unwrap(); assert!(bsp.reversed); bsp.user_cmd("--reverse".to_string(), None, "").unwrap(); assert!(!bsp.reversed); }