1+ let test_print_styles () =
2+ let open Ocannl.Row in
3+
4+ Stdio. printf " Testing print_style functionality:\n\n " ;
5+
6+ (* Create a solved dimension with all possible attributes *)
7+ let solved_dim_full = {
8+ d = 28 ;
9+ padding = Some 2 ;
10+ label = Some " height" ;
11+ proj_id = None
12+ } in
13+
14+ (* Create a dimension with projection by using fresh_row_proj *)
15+ let row_with_dim = {
16+ dims = [get_dim ~d: 32 ~label: " width" () ];
17+ bcast = Broadcastable ;
18+ id = row_id ~sh_id: 1 ~kind: `Output
19+ } in
20+ let row_with_proj = fresh_row_proj row_with_dim in
21+ let solved_dim_with_proj = match row_with_proj.dims with
22+ | [Dim sd] -> sd
23+ | _ -> failwith " Expected single dimension"
24+ in
25+
26+ (* Create a solved dimension with minimal attributes *)
27+ let solved_dim_minimal = {
28+ d = 64 ;
29+ padding = None ;
30+ label = None ;
31+ proj_id = None
32+ } in
33+
34+ (* Create a solved dimension with only padding *)
35+ let solved_dim_padding = {
36+ d = 32 ;
37+ padding = Some 3 ;
38+ label = Some " width" ;
39+ proj_id = None
40+ } in
41+
42+ (* Create a variable dimension *)
43+ let var_dim_labeled = get_var ~label: " channels" () in
44+ let var_dim_unlabeled = get_var () in
45+
46+ Stdio. printf " === Testing solved_dim_to_string ===\n " ;
47+ Stdio. printf " Full attributes (d=28, padding=2, label=height, proj_id):\n " ;
48+ Stdio. printf " Only_labels: %s\n " (solved_dim_to_string Only_labels solved_dim_full);
49+ Stdio. printf " Axis_size: %s\n " (solved_dim_to_string Axis_size solved_dim_full);
50+ Stdio. printf " Axis_number_and_size: %s\n " (solved_dim_to_string Axis_number_and_size solved_dim_full);
51+ Stdio. printf " Projection_and_size: %s\n " (solved_dim_to_string Projection_and_size solved_dim_full);
52+
53+ Stdio. printf " \n Minimal attributes (d=64, no padding, no label, no proj_id):\n " ;
54+ Stdio. printf " Only_labels: %s\n " (solved_dim_to_string Only_labels solved_dim_minimal);
55+ Stdio. printf " Axis_size: %s\n " (solved_dim_to_string Axis_size solved_dim_minimal);
56+ Stdio. printf " Projection_and_size: %s\n " (solved_dim_to_string Projection_and_size solved_dim_minimal);
57+
58+ Stdio. printf " \n With padding only (d=32, padding=3, label=width, no proj_id):\n " ;
59+ Stdio. printf " Axis_size: %s\n " (solved_dim_to_string Axis_size solved_dim_padding);
60+ Stdio. printf " Projection_and_size: %s\n " (solved_dim_to_string Projection_and_size solved_dim_padding);
61+
62+ Stdio. printf " \n With projection (d=32, label=width, proj_id):\n " ;
63+ Stdio. printf " Axis_size: %s\n " (solved_dim_to_string Axis_size solved_dim_with_proj);
64+ Stdio. printf " Projection_and_size: %s\n " (solved_dim_to_string Projection_and_size solved_dim_with_proj);
65+
66+ Stdio. printf " \n === Testing dim_to_string ===\n " ;
67+ Stdio. printf " Solved dimensions:\n " ;
68+ Stdio. printf " Only_labels (full): %s\n " (dim_to_string Only_labels (Dim solved_dim_full));
69+ Stdio. printf " Axis_size (full): %s\n " (dim_to_string Axis_size (Dim solved_dim_full));
70+ Stdio. printf " Projection_and_size (full): %s\n " (dim_to_string Projection_and_size (Dim solved_dim_full));
71+ Stdio. printf " Only_labels (minimal): %s\n " (dim_to_string Only_labels (Dim solved_dim_minimal));
72+ Stdio. printf " Axis_size (minimal): %s\n " (dim_to_string Axis_size (Dim solved_dim_minimal));
73+
74+ Stdio. printf " \n Variable dimensions:\n " ;
75+ Stdio. printf " Only_labels (labeled var): %s\n " (dim_to_string Only_labels (Var var_dim_labeled));
76+ Stdio. printf " Axis_size (labeled var): %s\n " (dim_to_string Axis_size (Var var_dim_labeled));
77+ Stdio. printf " Projection_and_size (labeled var): %s\n " (dim_to_string Projection_and_size (Var var_dim_labeled));
78+ Stdio. printf " Only_labels (unlabeled var): %s\n " (dim_to_string Only_labels (Var var_dim_unlabeled));
79+ Stdio. printf " Axis_size (unlabeled var): %s\n " (dim_to_string Axis_size (Var var_dim_unlabeled))
80+
81+ let test_shape_to_string () =
82+ let open Ocannl in
83+
84+ Stdio. printf " \n === Testing Shape.to_string_hum ===\n " ;
85+
86+ (* Create a simple shape *)
87+ let shape = Shape. make
88+ ~batch_dims: [1 ]
89+ ~input_dims: [784 ]
90+ ~output_dims: [10 ; 5 ]
91+ ~debug_name: " test_shape"
92+ ~id: 42
93+ () in
94+
95+ Stdio. printf " Shape with batch=[1], input=[784], output=[10,5]:\n " ;
96+ Stdio. printf " Only_labels: %s\n " (Shape. to_string_hum ~style: Row. Only_labels shape);
97+ Stdio. printf " Axis_size: %s\n " (Shape. to_string_hum ~style: Row. Axis_size shape);
98+ Stdio. printf " Axis_number_and_size: %s\n " (Shape. to_string_hum ~style: Row. Axis_number_and_size shape);
99+ Stdio. printf " Projection_and_size: %s\n " (Shape. to_string_hum ~style: Row. Projection_and_size shape);
100+
101+ (* Test default style *)
102+ Stdio. printf " Default style: %s\n " (Shape. to_string_hum shape)
103+
104+ let () =
105+ test_print_styles () ;
106+ test_shape_to_string ()
0 commit comments