Current section
Files
Jump to
Current section
Files
src/yog@internal@examples@graph_generation_showcase.erl
-module(yog@internal@examples@graph_generation_showcase).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/yog/internal/examples/graph_generation_showcase.gleam").
-export([main/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(false).
-file("src/yog/internal/examples/graph_generation_showcase.gleam", 6).
?DOC(false).
-spec main() -> nil.
main() ->
gleam_stdlib:println(<<"=== Yog Graph Generation Showcase ===\n"/utf8>>),
K5 = yog@generators@classic:complete(5),
gleam_stdlib:println(<<"Complete Graph K5:"/utf8>>),
gleam_stdlib:println(
<<"Nodes: "/utf8,
(erlang:integer_to_binary(yog@model:node_count(K5)))/binary>>
),
gleam_stdlib:println(
<<"Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(K5)))/binary>>
),
gleam_stdlib:println(<<""/utf8>>),
C6 = yog@generators@classic:cycle(6),
gleam_stdlib:println(<<"Cycle Graph C6:"/utf8>>),
gleam_stdlib:println(
<<"Nodes: "/utf8,
(erlang:integer_to_binary(yog@model:node_count(C6)))/binary>>
),
gleam_stdlib:println(
<<"Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(C6)))/binary>>
),
gleam_stdlib:println(<<""/utf8>>),
P5 = yog@generators@classic:path(5),
gleam_stdlib:println(<<"Path Graph P5:"/utf8>>),
gleam_stdlib:println(
<<"Nodes: "/utf8,
(erlang:integer_to_binary(yog@model:node_count(P5)))/binary>>
),
gleam_stdlib:println(
<<"Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(P5)))/binary>>
),
gleam_stdlib:println(<<""/utf8>>),
S6 = yog@generators@classic:star(6),
gleam_stdlib:println(<<"Star Graph S6:"/utf8>>),
gleam_stdlib:println(
<<"Nodes: "/utf8,
(erlang:integer_to_binary(yog@model:node_count(S6)))/binary>>
),
gleam_stdlib:println(
<<"Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(S6)))/binary>>
),
gleam_stdlib:println(<<""/utf8>>),
W6 = yog@generators@classic:wheel(6),
gleam_stdlib:println(<<"Wheel Graph W6:"/utf8>>),
gleam_stdlib:println(
<<"Nodes: "/utf8,
(erlang:integer_to_binary(yog@model:node_count(W6)))/binary>>
),
gleam_stdlib:println(
<<"Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(W6)))/binary>>
),
gleam_stdlib:println(<<""/utf8>>),
K33 = yog@generators@classic:complete_bipartite(3, 3),
gleam_stdlib:println(<<"Complete Bipartite K3,3:"/utf8>>),
gleam_stdlib:println(
<<"Nodes: "/utf8,
(erlang:integer_to_binary(yog@model:node_count(K33)))/binary>>
),
gleam_stdlib:println(
<<"Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(K33)))/binary>>
),
gleam_stdlib:println(<<""/utf8>>),
Tree = yog@generators@classic:binary_tree(3),
gleam_stdlib:println(<<"Binary Tree (height 3):"/utf8>>),
gleam_stdlib:println(
<<"Nodes: "/utf8,
(erlang:integer_to_binary(yog@model:node_count(Tree)))/binary>>
),
gleam_stdlib:println(
<<"Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(Tree)))/binary>>
),
gleam_stdlib:println(<<""/utf8>>),
Grid = yog@generators@classic:grid_2d(3, 4),
gleam_stdlib:println(<<"2D Grid (3x4):"/utf8>>),
gleam_stdlib:println(
<<"Nodes: "/utf8,
(erlang:integer_to_binary(yog@model:node_count(Grid)))/binary>>
),
gleam_stdlib:println(
<<"Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(Grid)))/binary>>
),
gleam_stdlib:println(<<""/utf8>>),
Petersen = yog@generators@classic:petersen(),
gleam_stdlib:println(<<"Petersen Graph:"/utf8>>),
gleam_stdlib:println(
<<"Nodes: "/utf8,
(erlang:integer_to_binary(yog@model:node_count(Petersen)))/binary>>
),
gleam_stdlib:println(
<<"Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(Petersen)))/binary>>
),
gleam_stdlib:println(<<""/utf8>>),
gleam_stdlib:println(<<"Generators respect graph type:"/utf8>>),
Directed_k4 = yog@generators@classic:complete_with_type(4, directed),
Undirected_k4 = yog@generators@classic:complete_with_type(4, undirected),
gleam_stdlib:println(
<<<<"Directed K4 Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(Directed_k4)))/binary>>/binary,
" (all bi-directional)"/utf8>>
),
gleam_stdlib:println(
<<"Undirected K4 Edges: "/utf8,
(erlang:integer_to_binary(yog@model:edge_count(Undirected_k4)))/binary>>
).