chore: run cargo fmt

This commit is contained in:
jeangab 2023-08-15 15:24:55 -04:00
parent 5d6ab1fa71
commit 63c13e1739
11 changed files with 176 additions and 207 deletions

View File

@ -1,9 +1,9 @@
use crate::components::BackgroundProps;
use crate::components::Background;
use crate::routes::whymdc::*;
use crate::routes::home::*;
use crate::routes::empty::*;
use crate::components::BackgroundProps;
use crate::routes::blog::*;
use crate::routes::empty::*;
use crate::routes::home::*;
use crate::routes::whymdc::*;
use leptos::*;
use leptos_meta::*;
use leptos_router::*;
@ -44,4 +44,3 @@ pub fn App(cx: Scope) -> impl IntoView {
</Router>
}
}

View File

@ -40,7 +40,11 @@ pub fn Background(cx: Scope, class: &'static str) -> impl IntoView {
context_to_render.move_to(n.position.x.into(), n.position.y.into());
context_to_render.line_to(child.position.x.into(), child.position.y.into());
};
let mut sc = SpaceColonization::new(width.try_into().unwrap(), height.try_into().unwrap(), render_node_fn);
let mut sc = SpaceColonization::new(
width.try_into().unwrap(),
height.try_into().unwrap(),
render_node_fn,
);
let nodes = Rc::new(RefCell::new(Vec::new()));
nodes.borrow_mut().push(Node::new(Point::new((
(window_width / 3) as i32,

View File

@ -1,6 +1,6 @@
mod codeblock;
mod code;
mod background;
pub use codeblock::*;
pub use code::*;
mod code;
mod codeblock;
pub use background::*;
pub use code::*;
pub use codeblock::*;

View File

@ -1,7 +1,7 @@
mod space_colonization;
pub mod app;
mod components;
mod routes;
mod space_colonization;
use cfg_if::cfg_if;
cfg_if! {

View File

@ -1,6 +1,6 @@
use crate::components::*;
use leptos::*;
use leptos_meta::*;
use crate::components::*;
#[component]
pub fn Blog(cx: Scope) -> impl IntoView {

View File

@ -1,4 +1,4 @@
pub mod whymdc;
pub mod home;
pub mod blog;
pub mod empty;
pub mod home;
pub mod whymdc;

View File

@ -3,7 +3,7 @@ use leptos::*;
#[component]
pub fn Subtitle(cx: Scope, class: &'static str, children: Children) -> impl IntoView {
let class = format!("text-3xl font-bold text-white {}", class);
view! { cx,
view! { cx,
<h3 class={class}>{children(cx)}</h3>
}
}
@ -15,7 +15,7 @@ pub fn SectionTitle(cx: Scope, dark: bool, children: Children) -> impl IntoView
textColorClass = "text-white";
}
let class = format!("text-5xl font-bold text-center {}", textColorClass);
view! { cx,
view! { cx,
<h2 class={class}>{children(cx)}</h2>
}
}
@ -27,9 +27,7 @@ pub fn SubsectionTitle(cx: Scope, dark: bool, children: Children) -> impl IntoVi
textColorClass = "text-white";
}
let class = format!("text-3xl font-bold {}", textColorClass);
view! { cx,
view! { cx,
<h5 class={class}>{children(cx)}</h5>
}
}

View File

@ -5,7 +5,7 @@ use leptos::*;
pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
view! { cx,
<div class="max-w-[1600px] mx-auto">
<div class="flex flex-col min-h-[700px] p-28 bg-cover bg-[url('/img/bg-page1.png')]">
<h1 class="text-orange-400 text-7xl font-extrabold mb-14">
"Micro centres de données"
@ -17,14 +17,14 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
</Subtitle>
<img src="/img/NationTech-logo.png" class="mx-auto opacity-50 w-1/4"/>
</div>
<div class="flex-col p-8">
<div class="w-full mx-auto mb-4 border-t-4 border-b-4 border-orange-400 p-4">
<SectionTitle dark=false>
"Énergie: le nerf de la guerre"
</SectionTitle>
</SectionTitle>
</div>
<div class="mr-72 ml-72">
<div class="mr-72 ml-72">
<p class="text-justify mb-10 mt-8">
"Tous les systèmes économiques sont basés sur deux variables fondamentales: le temps et lénergie. Depuis des millénaires lor est dispendieux. Parce quil requiert beaucoup de temps et dénergie à trouver. Depuis toujours leau a une valeur différente à différents endroits de la planète et moments de lannée, en fonction du temps et de lénergie requis pour la trouver. Dailleurs, lénergie est souvent représentée comme fonction du temps. Lunité dénergie choisie par le Système International, le Joule, sexprime en Kilogramme X Mètre2 X Seconde2. "
</p>
@ -32,14 +32,14 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
"Il convient donc de considérer lénergie comme fondement principal des différents systèmes économiques. Ce livre blanc vise à étudier les caractéristiques économiques selon différentes métriques naturelles, dont lénergie est la plus importante, des différentes technologies de déploiement de centres de données. Cette analyse vise plus particulièrement à comparer lefficacité énergétique, et donc économique, des déploiements de centres de données à très petite et très grande échelle."
</p>
<p class="text-right font-bold">
"Limpact global sera calculé en fonction des 5 métriques présentées ci-dessous."
"Limpact global sera calculé en fonction des 5 métriques présentées ci-dessous."
</p>
</div>
</div>
<div class="flex bg-zinc-200 h-[450px] max-[1150px]:h-fit max-[1150px]:flex-col flex-row justify-center items-center">
<div class="flex bg-zinc-200 h-[450px] max-[1150px]:h-fit max-[1150px]:flex-col flex-row justify-center items-center">
<div class="p-4 mt-8 mb-8 transform min-[1550px]:p-10 max-[1550px]:p-6 max-[1415px]:scale-75 max-[1340px]:p-0 max-[1150px]:scale-100 max-[1150px]:p-8">
<img src="/img/electricity-icon.png" class="mx-auto"/>
<img src="/img/electricity-icon.png" class="mx-auto"/>
<div class="flex justify-center items-center">
<h3 class="p-4 text-blue-950 text-5xl font-semibold">
"1"
@ -66,7 +66,7 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
<h3 class="p-4 text-blue-950 text-5xl font-semibold">
"3"
</h3>
<h4 class="font-Lato w-48 p-4 text-blue-950 text-xl font-medium my-auto">
<h4 class="font-Lato w-48 p-4 text-blue-950 text-xl font-medium my-auto">
"Impact environnemental"
</h4>
</div>
@ -77,7 +77,7 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
<h3 class="p-4 text-blue-950 text-5xl font-semibold">
"4"
</h3>
<h4 class="font-Lato w-48 p-4 text-blue-950 text-xl font-medium my-auto">
<h4 class="font-Lato w-48 p-4 text-blue-950 text-xl font-medium my-auto">
"Impact économique"
</h4>
</div>
@ -95,8 +95,8 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
</div>
</div>
<div class="justify-center items-center flex h-[250px] bg-cover bg-center bg-opacity-75 bg-[url('/img/server-wires-page3.png')]">
<div class="p-16 w-full">
<div class="justify-center items-center flex h-[250px] bg-cover bg-center bg-opacity-75 bg-[url('/img/server-wires-page3.png')]">
<div class="p-16 w-full">
<div class="w-full h-fit border-t-4 border-b-4 border-orange-400 p-4">
<SectionTitle dark=true>
"Qu'est-ce qu'un centre de données"
@ -106,27 +106,27 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
</div>
<div class="flex flex-col">
<div class="p-8 w-fit h-fit mr-72 ml-72">
<div class="w-fit pt-4 pb-4 border-r-8 border-indigo-500 pr-2">
<div class="w-fit pt-4 pb-4 border-r-8 border-indigo-500 pr-2">
<div class="flex-col">
<div class="flex justify-end pb-4">
<SubsectionTitle dark=true>
"Micro centres de données (MCD)"
</SubsectionTitle>
</div>
<p class="text-right mr-2 text-white">
<p class="text-right mr-2 text-white">
"Un MCD est une unité de serveurs de petite taille pouvant être installée dans nimporte quel immeuble, tant les maisons unifamiliales que les gratte-ciels ou les usines. Sa taille est adaptée aux besoins énergétiques de limmeuble qui labrite. Les rejets énergétiques, le plus souvent sous forme de chaleur, sont réutilisés au maximum dans limmeuble pour le chauffer. Ils peuvent également être utilisée pour chauffer leau, ou même regénérer de lélectricité dans certains cas. Ce type de déploiement réduit également les besoins de climatisation du centre de données puisque la chaleur est transférée à dautres usages. Lénergie totale consommée par le centre de données est donc déjà réduite."
</p>
</div>
</div>
</div>
<div class="p-8 w-fit h-fit pb-24 mr-72 ml-72">
<div class="w-fit pt-4 pb-4 border-l-8 border-indigo-500 pl-2">
<div class="w-fit pt-4 pb-4 border-l-8 border-indigo-500 pl-2">
<div class="flex-col">
<div class="flex justify-start pb-4">
<SubsectionTitle dark=true>
"Centres de données grande échelle (CDGE)"
</SubsectionTitle>
</div>
</div>
<div class="flex justify-start pb-4 text-white">
"Un CDGE est une unité constituée de milliers, voire de millions de serveurs centralisés sous un même toît. De tels serveurs sont généralement contenus dans dénormes bâtiments exclusivement dédiés à lhébergement de serveurs, ce qui requiert des systèmes de refroidissement énergivores."
</div>
@ -189,7 +189,7 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
<div class="flex flex-col justify-center">
</div>
<div class="flex-col p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-4">
<SectionTitle dark=false>
@ -199,7 +199,7 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
<div class="flex flex-row max-[1060px]:flex-col max-[1060px]:space-y-20 justify-center mt-16">
<div class="flex flex-col justify-center pl-40 pr-40 max-[1460px]:pl-16 max-[1460px]:pr-16">
<img src="/img/electricity-icon.png" class="transform mx-auto"/>
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
"Consommation d'énergie démesurée"
</h4>
</div>
@ -219,26 +219,26 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
<div class="flex flex-row max-[1060px]:flex-col min-[1060px]:pt-16 max-[1060px]:space-y-20 max-[1060px]:mt-20 justify-center">
<div class="flex flex-col justify-center pl-40 pr-40 max-[1460px]:pl-16 max-[1460px]:pr-16">
<img src="/img/coin-icon.png" class="transform mx-auto"/>
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
"Coûts exorbitants"
</h4>
</div>
<div class="flex flex-col justify-center pl-40 pr-40 max-[1460px]:pl-16 max-[1460px]:pr-16">
<img src="/img/group-icon.png" class="transform mx-auto"/>
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
"Impact social négatif"
</h4>
</div>
</div>
</div>
</div>
<div class="flex flex-col bg-zinc-200 justify-center p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<SectionTitle dark=false>
"Consommation d'énergie démesurée"
</SectionTitle>
</div>
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<p class="text-justify p-4 mb=32">
"On estime quen 2030, les technologies de linformation et de la communication, qui sont principalement basées sur lutilisation de serveurs informatiques, pourraient dans le pire des cas consommer 51% lélectricité mondiale et, dans le meilleur des cas, 8% de lélectricité mondiale (Andrae & Edler, 2015; Jones, 2018). On estime que 50% de lélectricité consommée par les CDGE sert au refroidissement des serveurs (The Impact of Data Centers on The Environment, 2022). Cette consommation dénergie est non seulement excessive, mais aussi hautement inefficiente. À titre illustratif, les résultats dune simulation réalisée dans le cadre dune étude chinoise réalisée en 2018 indiquaient que la charge cumulative annuelle de refroidissement dun CD était beaucoup plus élevée que la charge cumulative annuelle de chaleur (Yu et al., 2019, p. 154). Le potentiel de réutilisation de la chaleur est donc énorme, de même que le gaspillage énergétique actuel."
</p>
@ -251,7 +251,7 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
</div>
<div class="justify-center items-center flex h-[250px] bg-cover bg-center bg-opacity-90 bg-[url('/img/bg-water.jpg')]">
<div class="p-16 w-full">
<div class="p-16 w-full">
<div class="h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<SectionTitle dark=true>
"Consommation d'eau démesurée"
@ -269,10 +269,10 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
<div class="flex flex-col bg-zinc-200 justify-center p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<SectionTitle dark=false>
"Impact environnemental majeur"
</SectionTitle>
</SectionTitle>
</div>
<p class="text-justify mb-12 mt-8 ml-72 mr-72">
"Quant aux émissions de gaz à effet de serre (GES) des géants du web, le tableau suivant résume la situation en 2021 pour Amazon, Microsoft, Alphabet et Meta. À titre indicatif, lempreinte carbone per capita aux États-Unis est denviron 16 tonnes métriques déquivalent CO2 (tCO2e) et lempreinte per capita à léchelle planétaire est denviron 4 tCO2e (What Is Your Carbon Footprint? | Carbon Footprint Calculator, n.d.)"
@ -289,38 +289,38 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
"d'Amazon, Microsoft, Alphabet et Meta"
</h4>
<div class="bg-zinc-200 grid grid-cols-4 grid-rows-3 gap-y-4 ml-[450px] mr-[450px]">
<h4 class="flex fit-content items-center justify-center w-fit max-h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-xl font-bold">
<h4 class="flex fit-content items-center justify-center w-fit max-h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-xl font-bold">
"Catégories d'émissions"
</h4>
<div class="flex fit-content border-b-4 border-r-2 border-black pb-4">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-2xl font-bold">
<div class="flex fit-content border-b-4 border-r-2 border-black pb-4">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-2xl font-bold">
"Scope 1"
</h4>
</div>
<div class="flex fit-content border-b-4 border-r-2 border-black pb-4">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-2xl font-bold">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-2xl font-bold">
"Scope 2"
</h4>
</div>
<div class="flexfit-content border-b-4 border-black pb-4">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-2xl font-bold">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-2xl font-bold">
"Scope 3"
</h4>
</div>
<h4 class="flex fit-content items-center justify-center max-h-[68px] rounded-lg font-Lato bg-white mx-auto text-center w-fit p-4 text-blue-950 text-xl font-bold -translate-y-1">
<h4 class="flex fit-content items-center justify-center max-h-[68px] rounded-lg font-Lato bg-white mx-auto text-center w-fit p-4 text-blue-950 text-xl font-bold -translate-y-1">
"Quantité (tCO2e)"
</h4>
<div class="flex fit-content border-r-2 pt-4 border-black -translate-y-5">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-xl font-bold">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-xl font-bold">
"9 837 398"
</h4>
</div>
<div class="flex fit-content border-r-2 pt-4 border-black -translate-y-5">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-xl font-bold">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-xl font-bold">
"6 347 350"
</h4>
</div>
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-xl font-bold">
<h4 class="flex items-center justify-center w-[142px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-xl font-bold">
"74 566 000"
</h4>
<h4 class="flex items-center justify-center max-h-[68px] rounded-lg font-Lat bg-white mx-auto text-center p-4 text-blue-950 text-xl font-bold max-w-[175px] translate-y-1">
@ -330,74 +330,74 @@ pub fn WhyMicroDatacenters(cx: Scope) -> impl IntoView {
""
</div>
<div class="flex fit-content border-t-4 pt-4 border-black -translate-y-3">
<h4 class="flex items-center justify-center w-[300px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-2xl font-bold">
<h4 class="flex items-center justify-center w-[300px] h-[68px] rounded-lg font-Lato bg-white mx-auto text-center p-4 text-blue-950 text-2xl font-bold">
"90 750 748"
</h4>
</div>
<div class="flex border-t-4 pt-4 border-black -translate-y-3">
""
""
</div>
</div>
</div>
<div class="flex flex-col justify-center p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<SectionTitle dark=false>
"Coûts exorbitants"
</SectionTitle>
</div>
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<p class="text-justify p-4 mb=32">
"Le coût de construction, dexploitation et dentretien dun CDGE est extrêmement élevé. En effet, le coût de construction oscille entre $7 millions et $12 millions par mégawatt (MW) (Zhang, 2022a). Sachant que les centres de données de Google Cloud Platform (GCP) consomment en moyenne 20 MW, on parle dun coût de construction entre $140 M et $240 M."
</p>
</div>
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mb-12 mt-16 mr-72 ml-72 border-r-8 border-blue-400">
<p class="text-right p-4 mb=32">
"Or, la consommation électrique dun CD en MW ne représente pas nécessairement sa capacité de stockage ou de traitement des données. En effet, leur consommation électrique est non seulement liée au fonctionnement des équipements informatiques, mais aussi en grande partie aux besoins de refroidissement et de distribution d'énergie. Cette consommation délectricité augmente donc rapidement avec la taille des centres de données. "
</p>
</div>
</div>
<div class="flex flex-col justify-center p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<SectionTitle dark=true>
"Impact social négatif"
</SectionTitle>
</div>
<p class="text-justify mt-8 text-white ml-72 mr-72">
<p class="text-justify mt-8 text-white ml-72 mr-72">
"Les quatre problèmes ci-haut identifiés préoccupent de nombreuses personnes. Par exemple, dans les régions désertiques de lOuest américain où les big tech sinstallent pour labondance dénergie renouvelable, notamment lénergie solaire, plusieurs communautés sont préoccupées par les quantités astronomiques deau consommées par les CDGE (Solon, 2021). En Arizona, où Apple a élu domicile pour un de ses CD, on indique que le niveau du principal réservoir deau de la région a atteint de bas niveaux historiques (James, 2021). La mairesse de Mesa, ville où se trouve le CD en question, se confiait à BBC News en 2021: "
</p>
<p class="text-right italic mt-8 text-white ml-[450px] mr-[450px]">
<p class="text-right italic mt-8 text-white ml-[450px] mr-[450px]">
"When it comes to economic development, I dont think we are fully transparent about the water concerns [...] We want to keep the image that we are a great place to invest and start a business. But we dont like to talk about the water."
</p>
<p class="text-right italic text-white ml-[450px] mr-[450px]">
"(Solon, 2021)"
</p>
<p class="text-justify mt-8 text-white ml-72 mr-72">
<p class="text-justify mt-8 text-white ml-72 mr-72">
"Similairement, Microsoft sest fait reprocher de manquer de transparence quant à son utilisation dans un de ces CD au Pays-Bas. Lentreprise avait indiqué quelle utiliserait de 12 M à 20 M de litres deau par an. Or, on découvrait quelle avait plutôt utilisé 84 M de litres deau en 2021, alors que des vagues de chaleur causaient dimportantes pénuries deau cette même année. Ce manque de transparence chronique est révélateur dun profond problème de responsabilité sociale de ces grandes industries."
</p>
<p class="text-justify mt-8 text-white ml-72 mr-72">
<p class="text-justify mt-8 text-white ml-72 mr-72">
"Le manque de transparence touche non seulement la gestion environnementale des projets, mais aussi le fonctionnement desdits CD comme lillustre le graphique ci-bas."
</p>
<h4 class="flex justify-center text-center mt-16 font-Lato text-white text-3xl font-extrabold ml-[450px] mr-[450px]">
"Compréhension du public quant à l'utilisation des CD et la gestion de leurs données"
</h4>
<div class="flex justify-center items-center p-8">
<img src="/img/graph-1.png"/>
<div class="flex justify-center items-center p-8">
<img src="/img/graph-1.png"/>
</div>
<p class="text-justify mt-2 text-neutral-400 text-xs ml-72 mr-72">
<p class="text-justify mt-2 text-neutral-400 text-xs ml-72 mr-72">
"Sources:"
</p>
<p class="text-justify mt-2 text-neutral-400 text-xs ml-72 mr-72">
<p class="text-justify mt-2 text-neutral-400 text-xs ml-72 mr-72">
"https://www.statista.com/statistics/617136/digital-population-worldwide/?fbclid=IwAR0bHpZ0u4JbW1hW2QI5WqJKmFhsmwJBwmviNVnesn-6rNhnQQCkbYrT1OU"
</p>
<p class="text-justify mt-2 text-neutral-400 text-xs ml-72 mr-72">
<p class="text-justify mt-2 text-neutral-400 text-xs ml-72 mr-72">
"https://www.pewresearch.org/internet/2019/11/15/americans-and-privacy-concerned-confused-and-feeling-lack-of-control-over-their-personal-information/?fbcli
d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</p>
</div>
<div class="flex-col bg-zinc-200 p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<SectionTitle dark=false>
@ -407,7 +407,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<div class="flex flex-row max-[1060px]:flex-col max-[1060px]:space-y-20 justify-center mt-16">
<div class="flex flex-col justify-center pl-40 pr-40 max-[1460px]:pl-16 max-[1460px]:pr-16">
<img src="/img/electricity-icon.png" class="transform mx-auto"/>
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
"Consommation dénergie responsable et durable"
</h4>
</div>
@ -425,17 +425,17 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<div class="flex flex-row max-[1060px]:flex-col min-[1060px]:pt-16 max-[1060px]:space-y-20 max-[1060px]:mt-20 justify-center">
<div class="flex flex-col justify-center pl-40 pr-40 max-[1460px]:pl-16 max-[1460px]:pr-16">
<img src="/img/coin-icon.png" class="transform mx-auto"/>
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
"Faibles coûts"
</h4>
</div>
<div class="flex flex-col justify-center pl-40 pr-40 max-[1460px]:pl-16 max-[1460px]:pr-16">
<img src="/img/group-icon.png" class="transform mx-auto"/>
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
<h4 class="font-Lato mx-auto text-center w-64 p-4 text-blue-950 text-3xl font-bold">
"Impact social positif"
</h4>
</div>
</div>
</div>
</div>
<div class="justify-center items-center flex h-[250px] bg-cover bg-bottom bg-opacity-75 bg-[url('/img/solar-panel.jpg')]">
@ -449,25 +449,25 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</div>
</div>
</div>
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<p class="text-left p-4 mb=32">
"Les MCD, tels que ceux développés par NationTech, consomment une fraction de lénergie dun CDGE. La clé de cette augmentation de lefficacité énergétique est la réutilisation de la chaleur. En effet, les CDGE refroidissent léquipement informatique grâce à des systèmes de climatisation énergivores tandis que les MCD extraient la chaleur via un système daération ou de refroidissement liquide qui la distribue afin de combler les besoins en chauffage deau et dair dun immeuble donné. Ainsi, lélectricité normalement utilisée afin de faire chauffer une résistance dans un radiateur servira plutôt à faire chauffer des serveurs. Suivant un principe physique de base, les rejets thermiques étant pratiquement identiques."
</p>
</div>
<div class="mt-8 mx-auto max-w-[425px]">
<SectionTitle dark=false>
"Rien ne se perd, Rien ne se crée, Tout se transforme"
"Rien ne se perd, Rien ne se crée, Tout se transforme"
</SectionTitle>
<p class="mt-2 text-right text-blue-950 font-sm">
"Antoine Lavoisier"
</p>
</div>
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mb-16 mt-16 mr-72 ml-72 border-r-8 border-blue-400">
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mb-16 mt-16 mr-72 ml-72 border-r-8 border-blue-400">
<p class="text-right p-4 mb=32">
"Deux métriques sont ci-après utilisées afin de comparer lefficacité énergétique des MCD par rapport à celle des CDGE: le power usage effectiveness (PUE) ainsi que le energy reuse factor (ERF). NationTech a créé une troisième métrique permettant de fusionner les deux première: le global power usage effectiveness (GPUE)."
</p>
</div>
<div class="flex-col bg-zinc-200 p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-4">
<SectionTitle dark=false>
@ -490,8 +490,8 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<h4 class="flex justify-center text-center mt-16 font-Lato text-blue-950 text-5xl font-extrabold">
"Power Usage Effectiveness (PUE)"
</h4>
<div class="flex justify-center items-center p-8">
<img src="/img/graph-2.png"/>
<div class="flex justify-center items-center p-8">
<img src="/img/graph-2.png"/>
</div>
<p class="justify-center text-right ml-48 mr-48">
"*Voir section sur le GPUE"
@ -521,24 +521,24 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<h4 class="flex justify-center text-center mt-16 font-Lato text-white text-5xl font-extrabold">
"Energy reuse factor (ERF)"
</h4>
<div class="flex justify-center items-center p-8">
<img src="/img/graph-3.png"/>
<div class="flex justify-center items-center p-8">
<img src="/img/graph-3.png"/>
</div>
</div>
</div>
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<p class="text-left p-4 mb=32">
"Les MCD visent à réutiliser la majorité de lénergie utilisée afin de faire fonctionner le CD. Les rejets thermiques de léquipement informatiques, soit lensemble de lénergie entrant dans le CD moins lélectricité utilisée pour les ventilateurs et le courant électrique passant dans la fibre optique, est réutilisée afin de chauffer un immeuble. Dans le cas des CDGE, aucune énergie nest réutilisée. En effet, on refroidit plutôt les installations avec des systèmes de climatisation énergivores ou bien avec de leau qui, une fois chaude, donc chargée énergétiquement, est rejetée dans la nature sans être réutilisée."
</p>
</div>
<div class="mb-8">
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-r-8 border-blue-400">
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-r-8 border-blue-400">
<p class="text-right p-4">
"Les géants de lindustrie ont quelques projets sur la table afin de réutiliser la chaleur de leurs serveurs. Cependant, pour le moment, cest une part infime de leurs CD qui recyclent la chaleur produite. Azure indique pourtant que le potentiel est énorme: selon les estimations de lentreprise, il serait possible datteindre un ERF de 0.69 en hiver et 0.84 en été."
</p>
</div>
</div>
<div class="flex-col p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-4">
<SectionTitle dark=true>
@ -559,12 +559,12 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
"Global Power Usage Effectiveness (GPUE)"
</h4>
<div class="flex justify-center items-center p-8">
<img src="/img/graph-4.png"/>
<img src="/img/graph-4.png"/>
</div>
</div>
</div>
<div class="mb-8">
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<div class="flex flex-col justify-center pt-4 pb-4 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<p class="text-left p-4">
"Meta, Azure, Vantage, Equinix et AWS projettent toutes réutiliser lénergie de leurs centres de données afin datteindre la carboneutralité dici 2030. À lexception de Vantage, elles ont toutes implémenter des projets de réutilisation de la chaleur produite par léquipement informatique de leurs centres de données. Aucune information na été trouvée quant à lintention de Google dimplémenter de tels projets. Voici un bref résumé de ces initiatives."
</p>
@ -575,7 +575,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<div class="flex flex-row">
<div class="flex w-1/2 justify-center items-center p-8">
<img src="/img/Facebook-logo.jpg" class="mx-auto mt-8 mb-8 rounded-lg w-1/2"/>
</div>
</div>
<div class="flex justify-center center w-1/2 bg-zinc-200">
<div class="my-auto">
<p class="mx-auto mr-32 ml-32 text-justify">
@ -587,7 +587,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<div class="flex flex-row">
<div class="flex w-1/2 justify-center items-center p-8">
<img src="/img/Microsoft-logo.jpg" class="h-[231.23px] mx-auto mt-8 mb-8 rounded-lg w-1/2"/>
</div>
</div>
<div class="flex justify-center center w-1/2 bg-zinc-200">
<div class="my-auto">
<p class="mx-auto mr-32 ml-32 text-justify">
@ -600,8 +600,8 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<div class="flex w-1/2 justify-center items-center p-8">
<div class="flex h-[231.23px] w-[368px] bg-white rounded-lg">
<img src="/img/Vantage-logo.png" class="mx-auto mt-8 mb-8 h-3/4 w-3/4"/>
</div>
</div>
</div>
</div>
<div class="flex justify-center center w-1/2 bg-zinc-200">
<div class="my-auto">
<p class="mx-auto mr-32 ml-32 text-justify">
@ -613,7 +613,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<div class="flex flex-row">
<div class="flex w-1/2 justify-center items-center p-8">
<img src="/img/Equinix-logo.jpg" class="h-[231.23px] mx-auto mt-8 mb-8 rounded-lg w-1/2"/>
</div>
</div>
<div class="flex justify-center center w-1/2 bg-zinc-200">
<div class="my-auto">
<p class="mx-auto mr-32 ml-32 text-justify">
@ -625,7 +625,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<div class="flex flex-row">
<div class="flex w-1/2 justify-center items-center p-8">
<img src="/img/Amazon-logo.jpg" class="h-[231.23px] mx-auto mt-8 mb-8 rounded-lg w-1/2"/>
</div>
</div>
<div class="flex justify-center center w-1/2 bg-zinc-200">
<div class="my-auto">
<p class="mx-auto mr-32 ml-32 text-justify">
@ -635,20 +635,20 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</div>
</div>
</div>
<div class="flex flex-col justify-center p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<SectionTitle dark=false>
"Consommation d'eau responsable et durable"
</SectionTitle>
</div>
<div class="flex flex-col justify-center pt-4 pb-4 mb-8 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<div class="flex flex-col justify-center pt-4 pb-4 mb-8 pl-2 mt-16 mr-72 ml-72 border-l-8 border-blue-400">
<p class="text-justify p-4 mb=32">
"Les MCD tels que développés par NationTech ne consomment pas deau. En effet, lentreprise offre deux options afin de distribuer la chaleur dans les immeubles quelle chauffe: soit un système de ventilation conventionnel distribuant la chaleur des serveurs grâce à des ventilateurs, soit un système de refroidissement liquide qui absorbe la chaleur produite pour la redistribuer dans limmeuble."
</p>
</div>
</div>
<div class="flex-col bg-zinc-200 p-8">
<div class="mx-auto h-fit w-full border-t-4 border-b-4 border-orange-400 p-4">
<SectionTitle dark=false>
@ -664,7 +664,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</p>
</div>
</div>
<div class="flex-col p-8">
<div class="flex justify-center flex-col ml-72 mr-72">
<p class="justify-center text-justify mt-8"> "La figure suivante présente le WUE moyen des entreprise Meta, Google, Microsoft, Vantage, Equinix et Amazon pour leur CDGE ainsi que le WUE de NationTech dans ses MCD."
@ -677,17 +677,17 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<p class="justify-center text-justify mt-8">
"La figure suivante présente le WUE moyen des entreprise Meta, Google, Microsoft, Vantage, Equinix et Amazon pour leur CDGE ainsi que le WUE de NationTech dans ses MCD."
</p>
<h4 class="flex justify-center text-center mt-16 font-Lato text-5xl font-extrabold">
<h4 class="flex justify-center text-center mt-16 font-Lato text-5xl font-extrabold">
"Water Usage Effectiveness (WUE)"
</h4>
<div class="flex justify-center items-center p-8">
<img src="/img/graph-5.png" class="mt-8 mb-8 scale-125"/>
<img src="/img/graph-5.png" class="mt-8 mb-8 scale-125"/>
</div>
</div>
</div>
<div class="flex flex-col p-8 ">
<div class="pt-16 w-full">
<div class="pt-16 w-full">
<div class="h-fit w-full border-t-4 border-b-4 border-orange-400 p-8">
<SectionTitle dark=true>
"Impact environnemental nul"
@ -709,7 +709,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
"Température froide"
</p>
<div class="mb-4 flex flex-row">
<div class="flex items-center">
<div class="flex items-center">
<p class="mr-12 text-left font-extrabold text-4xl text-white">
"1"
</p>
@ -719,7 +719,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</p>
</div>
<div class="mb-4 flex flex-row">
<div class="flex items-center">
<div class="flex items-center">
<p class="mr-12 text-left font-extrabold text-4xl text-white">
"2"
</p>
@ -729,7 +729,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</p>
</div>
<div class="mb-4 flex flex-row">
<div class="flex items-center">
<div class="flex items-center">
<p class="mr-12 text-left font-extrabold text-4xl text-white">
"3"
</p>
@ -739,7 +739,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</p>
</div>
<div class="flex flex-row">
<div class="flex items-center">
<div class="flex items-center">
<p class="mr-12 text-left font-extrabold text-4xl text-white">
"4"
</p>
@ -747,9 +747,9 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
<p class="text-justify text-white">
"Cet air est utilisé pour chauffer la maison afin datteindre la température cible."
</p>
</div>
</div>
</div>
</div>
<div class="flex flex-row p-16">
<img src="/img/house-2.png" class="mr-4"/>
@ -758,7 +758,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
"Température chaude"
</p>
<div class="mb-4 flex flex-row">
<div class="flex items-center">
<div class="flex items-center">
<p class="mr-12 text-left font-extrabold text-4xl text-white">
"1"
</p>
@ -768,7 +768,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</p>
</div>
<div class="mb-4 flex flex-row">
<div class="flex items-center">
<div class="flex items-center">
<p class="mr-12 text-left font-extrabold text-4xl text-white">
"2"
</p>
@ -778,7 +778,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</p>
</div>
<div class="mb-4 flex flex-row">
<div class="flex items-center">
<div class="flex items-center">
<p class="mr-12 text-left font-extrabold text-4xl text-white">
"3"
</p>
@ -788,7 +788,7 @@ d=IwAR3wuxdHW8VE30FMaqZ6Iuj9Cs86bRSvmij1e_zDjM6Bwo4l71n5EKcLxqY"
</p>
</div>
<div class="flex flex-row">
<div class="flex items-center">
<div class="flex items-center">
<p class="mr-12 text-left font-extrabold text-4xl text-white">
"4"
</p>

View File

@ -46,20 +46,20 @@ impl Point {
impl Ord for Point {
fn cmp(&self, other: &Self) -> std::cmp::Ordering {
if self.x > other.x {
return std::cmp::Ordering::Greater;
}
if self.x < other.x {
return std::cmp::Ordering::Less;
}
if self.y > other.y {
return std::cmp::Ordering::Greater;
}
if self.y < other.y {
return std::cmp::Ordering::Less;
}
if self.x > other.x {
return std::cmp::Ordering::Greater;
}
if self.x < other.x {
return std::cmp::Ordering::Less;
}
if self.y > other.y {
return std::cmp::Ordering::Greater;
}
if self.y < other.y {
return std::cmp::Ordering::Less;
}
std::cmp::Ordering::Equal
std::cmp::Ordering::Equal
}
}
@ -69,169 +69,135 @@ mod tests {
#[test]
fn distance_to_itself_is_zero() {
let p = Point {
x: 1,
y: 1,
};
let p = Point { x: 1, y: 1 };
assert_eq!(p.distance(&p), 0.0);
}
#[test]
fn distance_same_x_is_y() {
let p1 = Point {
x: 1,
y: 1,
};
let p1 = Point { x: 1, y: 1 };
let p2 = Point {
x: 1,
y: 5,
};
let p2 = Point { x: 1, y: 5 };
assert_eq!(p1.distance(&p2), 4.0);
}
#[test]
fn distance_same_y_is_x() {
let p1 = Point::new((1,1));
let p2 = Point::new((5,1));
let p1 = Point::new((1, 1));
let p2 = Point::new((5, 1));
assert_eq!(p1.distance(&p2), 4.0);
}
#[test]
fn distance_3_4_5() {
let p1 = Point::new((0,0));
let p2 = Point::new((3,4));
let p1 = Point::new((0, 0));
let p2 = Point::new((3, 4));
assert_eq!(p1.distance(&p2), 5.0);
}
#[test]
fn distance_is_always_positive() {
let p1 = Point::new((10,10));
let p2 = Point::new((5,10));
let p1 = Point::new((10, 10));
let p2 = Point::new((5, 10));
assert_eq!(p1.distance(&p2), 5.0);
let p1 = Point::new((10,10));
let p2 = Point::new((10,5));
let p1 = Point::new((10, 10));
let p2 = Point::new((10, 5));
assert_eq!(p1.distance(&p2), 5.0);
}
#[test]
fn distance_quadrant3() {
let p1 = Point {
x: 3,
y: 4,
};
let p1 = Point { x: 3, y: 4 };
let p2 = Point {
x: 0,
y: 0,
};
let p2 = Point { x: 0, y: 0 };
assert_eq!(p1.distance(&p2), 5.0);
}
#[test]
fn distance_quadrant2() {
let p1 = Point {
x: 3,
y: 4,
};
let p1 = Point { x: 3, y: 4 };
let p2 = Point {
x: 0,
y: 100,
};
let p2 = Point { x: 0, y: 100 };
assert_eq!(p1.distance(&p2) as f32, 96.04687);
}
#[test]
fn distance_quadrant2_fast() {
let p1 = Point {
x: 3,
y: 4,
};
let p1 = Point { x: 3, y: 4 };
let p2 = Point {
x: 3,
y: 50,
};
let p2 = Point { x: 3, y: 50 };
assert_eq!(p1.distance(&p2), 46.0);
}
#[test]
fn distance_quadrant4() {
let p1 = Point {
x: 3,
y: 4,
};
let p1 = Point { x: 3, y: 4 };
let p2 = Point {
x: 50,
y: -50,
};
let p2 = Point { x: 50, y: -50 };
assert_eq!(p1.distance(&p2) as f32, 71.5891);
}
#[test]
fn movement_does_nothing_when_right_length() {
let root = Point::new((0,0));
let node = Point::new((0,1));
let root = Point::new((0, 0));
let node = Point::new((0, 1));
assert_eq!(root.movement(node.clone(), 1), node);
}
#[test]
fn movement_does_not_overlap() {
let root = Point::new((0,1));
let node = Point::new((0,0));
let root = Point::new((0, 1));
let node = Point::new((0, 0));
assert_eq!(root.movement(node.clone(), 2), Point::new((0, -1)));
}
#[test]
fn movement_adjusts_to_asked_length() {
let root = Point::new((0,0));
let node = Point::new((0,1));
assert_eq!(root.movement(node, 10), Point::new((0,10)));
let root = Point::new((0, 0));
let node = Point::new((0, 1));
assert_eq!(root.movement(node, 10), Point::new((0, 10)));
}
#[test]
fn movement_works_away_from_origin() {
let root = Point::new((10,10));
let node = Point::new((10,11));
assert_eq!(root.movement(node, 10), Point::new((10,20)));
let root = Point::new((10, 10));
let node = Point::new((10, 11));
assert_eq!(root.movement(node, 10), Point::new((10, 20)));
}
#[test]
fn movement_works_in_two_dimension() {
let root = Point::new((10,10));
let node = Point::new((40,50));
assert_eq!(root.movement(node, 50), Point::new((40,50)));
let root = Point::new((10, 10));
let node = Point::new((40, 50));
assert_eq!(root.movement(node, 50), Point::new((40, 50)));
let root = Point::new((10,10));
let node = Point::new((40,50));
assert_eq!(root.movement(node, 5), Point::new((13,14)));
let root = Point::new((10, 10));
let node = Point::new((40, 50));
assert_eq!(root.movement(node, 5), Point::new((13, 14)));
}
#[test]
fn movement_works_in_all_directions() {
let root = Point::new((40,50));
let node = Point::new((10,10));
assert_eq!(root.movement(node, 5), Point::new((37,46)));
let root = Point::new((40, 50));
let node = Point::new((10, 10));
assert_eq!(root.movement(node, 5), Point::new((37, 46)));
let root = Point::new((50,10));
let node = Point::new((10,10));
assert_eq!(root.movement(node, 5), Point::new((45,10)));
let root = Point::new((50, 10));
let node = Point::new((10, 10));
assert_eq!(root.movement(node, 5), Point::new((45, 10)));
let root = Point::new((10,50));
let node = Point::new((10,10));
assert_eq!(root.movement(node, 5), Point::new((10,45)));
let root = Point::new((10, 50));
let node = Point::new((10, 10));
assert_eq!(root.movement(node, 5), Point::new((10, 45)));
}
}

View File

@ -311,7 +311,7 @@ mod test {
let mut attractors = Vec::new();
attractors.push(Attractor::new(Point::new((10, 0))));
let mut sc = SpaceColonization::new_for_tests(100, 100, attractors, |_, _|{});
let mut sc = SpaceColonization::new_for_tests(100, 100, attractors, |_, _| {});
assert_eq!(sc.attractors.len(), 1);
assert!(sc.attractors.iter().find(|a| a.dead == true).is_none());
@ -357,7 +357,7 @@ mod test {
dead: true,
});
let mut sc = SpaceColonization::new_for_tests(100, 100, attractors, |_, _|{});
let mut sc = SpaceColonization::new_for_tests(100, 100, attractors, |_, _| {});
assert_eq!(sc.attractors.len(), 1);
assert!(sc.attractors.iter().find(|a| a.dead == true).is_some());

View File

@ -154,8 +154,10 @@ mod test {
assert_eq!(
index.get_surrounding_elements(&Point::new((50, 50))).sort(),
vec![
&4040, &4545, &5040, &6040, &4050, &5050, &6050, &5050, &5151, &6060, &4060, &5060, &6060,
].sort()
&4040, &4545, &5040, &6040, &4050, &5050, &6050, &5050, &5151, &6060, &4060, &5060,
&6060,
]
.sort()
);
}