-
Notifications
You must be signed in to change notification settings - Fork 5
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'refs/remotes/origin/main'
- Loading branch information
Showing
10 changed files
with
205 additions
and
91 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
name: Rust CI | ||
|
||
on: | ||
push: | ||
paths: | ||
- "backend/rust_parser/**" | ||
- "backend/vector_store/**" | ||
- ".github/workflows/rust-ci.yml" | ||
pull_request: | ||
branches: | ||
- main | ||
|
||
env: | ||
CARGO_TERM_COLOR: always | ||
RUSTFLAGS: "-Dwarnings" | ||
|
||
jobs: | ||
prettier: | ||
name: Rust quality check | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
service: [rust_parser, vector_store] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Run clippy on ${{ matrix.service }} | ||
working-directory: backend/${{ matrix.service }} | ||
run: cargo clippy --all-targets --all-features |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,8 +1,5 @@ | ||
use std::env; | ||
|
||
#[cfg(test)] | ||
use pretty_assertions::{assert_eq, assert_ne}; | ||
|
||
use std::time; | ||
pub mod parser; | ||
|
||
|
@@ -63,6 +60,12 @@ fn main() { | |
#[cfg(test)] | ||
mod tests { | ||
use super::*; | ||
use pretty_assertions::assert_eq; | ||
const TEST_HTMLS_DIR: &str = "./test_data/pages"; | ||
use parser::{ | ||
Coordinator, Course, Department, Description, Exam, Faculty, LogisticInformation, Workload, | ||
WorkloadType, | ||
}; | ||
|
||
// check that there are files in PAGES_DIR | ||
#[test] | ||
|
@@ -72,7 +75,7 @@ mod tests { | |
} | ||
|
||
#[test] | ||
fn test_LSLS10061U() { | ||
fn test_lsls10061_u() { | ||
let html = std::fs::read_to_string(format!("{}/LSLS10061U.html", TEST_HTMLS_DIR)).unwrap(); | ||
let course = parser::parse_course(&html); | ||
let expected_course = Course { | ||
|
@@ -87,28 +90,80 @@ mod tests { | |
vec![parser::Degree::Bachelor], | ||
parser::Capacity(Some(70)), | ||
), | ||
description: Description { | ||
content: "<p><strong>Skov og naturressourcer globalt:</strong></p><p>Globale klima- og vegetationszoner og deres økologi</p><p>Verdens naturressourcer, skove, nationalparker og\nnaturområder</p><p>Naturbeskyttelse og bevarelsesprogrammer</p><p>Globale skovopgørelser, fakta og trends, klassifikationer\u{a0}-\nog problematikker</p><p>Udfordringer i forhold til en bæredygtig anvendelse af\nnaturressourcer globalt</p><p>\u{a0}</p><p><strong>International forvaltning:</strong></p><p>International skov og naturressourceforvaltning - politisk,\ninstitutionelt og økonomisk</p><p>- Skovpolitik og regeringsførelse</p><p>- Internationale konventioner</p><p>- Regional EU politik og regelsæt\u{a0}</p><p>International skov og naturressourceforvaltning - decentrale\nsystemer\u{a0}</p><p>- Agroforestry</p><p>- Samfundsbaseret naturressourceforvaltning, indfødte folk og\nviden</p><p>Naturressourcebaserede konflikter</p><p>Klimaændringer ift. skov og natur</p><p>\u{a0}</p><p><strong>Produktion, markedet og handel:</strong></p><p>International skov og naturressourceforvaltning -\nkommercielt</p><p>- Plantage-\u{a0} koncessionsskovbrug</p><p>- Dyrkningssystemer og problematikker, optimering og\ngenbevarelse</p><p>- International handel med træprodukter \u{a0}</p><p>- Ulovlig hugst og handel</p><p>- Global og EU markedsbaseret regulering (skovcertificering,\nlegalitetsverificering, FLEGT)</p>".to_string(), | ||
learning_outcome: "<p>Kursets overordnede formål er at give den enkelte studerende\nviden om de vilkår, der danner rammerne for forvaltningen af skov\nog naturressourcer verden over. Det er også at give en\ngrundlæggende forståelse for hvordan de internationale rammer og\nvilkår har betydning for den måde, som skov og naturressourcer\nforvaltes i Danmark.</p><p><br></br><strong>Viden:</strong></p><p>- Kendskab til vækstvilkår og vegetationstyper globalt</p><p>- Kendskab til direkte og underliggende årsager til afskovning\nog over-udnyttelse af ressourcer</p><p>- Indsigt i koncessionsskovbrug, plantagedrift og\nagro-forestry</p><p>- Kendskab til internationale konventioner og EU lovgivning på\nskov og naturressourceområdet</p><p>- Kendsakbs til bevaringsklassifikationer og naturbeskyttelse i\npraksis</p><p>- Kendskab til de mest almindelige\u{a0}tømmertræarter</p><p>- Kendskab til det internationale markeds betydning for\nforvaltningen af skov- og naturressourcer</p><p>- Indsigt i mekanismerne der driver ulovlig hugst og handel med\ntræ</p><p>- Indsigt i markedsbaseret regulering</p><p>- Kendskab til de mest almindelige certificeringssystemer</p><p>- Indsigt i betydningen af\u{a0}klimaforandringer\u{a0}for den\nmåde skov og naturressourcer\u{a0} forvaltes\u{a0}i fremtiden</p><p>\u{a0}</p><p><strong>Færdigheder:</strong></p><p>- Redegøre for hvordan de naturgivne vækstvilkår i forskellige\nvegetationszoner har betydning for den måde som skov – og\nnaturressourcer i disse zoner bør forvaltes</p><p>- Redegøre for og diskutere hvordan problemer over-udnyttelse af\nskov og naturressourcer kan afhjælpes\n<br></br><br></br>\n- Redegøre for hvordan internationale konventioner og EU lovgivning\nhar betydning for forvaltningen af skov og naturressourcer\nlokalt</p><p>- Analysere globale markedstrends og forklare hvordan disse har\nbetydning for forvaltningen af skov- og naturressourcer</p><p>- Redegøre for de grundlæggende principper bag decentraliseret\nressourceforvaltning</p><p>- Identificere de udfordringer, som forvaltningen af\nfællesressourcer kan medføre</p><p>- Forklare hvordan markedsbaseret regulering af skov og\nnaturressourceforvaltning fungerer</p><p>- Redegøre for de vigtigste drivere bag ulovlig hugst og handel\nsamt hvordan det kan bekæmpes</p><p>- Opstille praktiske løsninger for hvordan negative konsekvenser\naf klimaforandringer kan afhjælpes</p><p>- Kan argumentere for og imod decentraliseret skov- og\nnaturressourceforvaltning</p><p><br></br><strong>Kompetencer:</strong></p><p>- Arbejde med skov og naturressourceforvaltning under de\nrammevilkår som internationale konventioner og EU lovgivning\ngiver</p><p>- Bidrage til at afhjælpe degradering og over-udnyttelse af skov\nog naturressourcer</p><p>- Indgå i samarbejder omkring forvaltningen af skov og\nnaturressource i forskellige klimazoner - både nationalt og\ninternationalt</p><p>- Tage informerede driftsbeslutninger under hensyntagen til\nnationale og internationale markedstrends</p><p>- Arbejde med certificering og legalitetsveriticering</p><p>- Integrere klimatilpasningshensyn i forvaltningen af skov og\nnaturressourcer</p>".to_string(), | ||
recommended_qualifications: Some("Basal forståelse for\nnaturforvaltning og/eller samfundsvidenskab.\n<br></br>\nSprogkundskaber til at kunne læse og forstå engelsk faglitteratur.\n<br></br>\nTilnærmelsesvis alt litteratur er på engelsk.".to_string()), | ||
summary: "Skov og naturressourcer globalt:Globale klima- og vegetationszoner og deres økologiVerdens naturressourcer, skove, nationalparker og\nnaturområderNaturbeskyttelse og bevarelsesprogrammerGlobale skovopgørelser, fakta og trends, klassifikationer\u{a0}-\nog problematikkerUdfordringer i forhold til en bæredygt".to_string(), | ||
}, | ||
exams: vec![Exam::Oral(Some(30))], | ||
/* | ||
* > workloads: [ | ||
> Workload { | ||
> workload_type: Lectures, | ||
> hours: 98.0, | ||
> }, | ||
> Workload { | ||
> workload_type: Preparation, | ||
> hours: 97.0, | ||
> }, | ||
> Workload { | ||
> workload_type: ProjectWork, | ||
> hours: 8.0, | ||
> }, | ||
> Workload { | ||
> workload_type: Exam, | ||
> hours: 1.0, | ||
> }, | ||
> ], | ||
*/ | ||
workloads: vec![ | ||
Workload::new(WorkloadType::Lectures, 98.0), | ||
Workload::new(WorkloadType::Preparation, 97.0), | ||
Workload::new(WorkloadType::ProjectWork, 8.0), | ||
Workload::new(WorkloadType::Exam, 1.0), | ||
], | ||
|
||
logistics: LogisticInformation::new( | ||
vec![Department::GeosciencesAndNaturalResourceManagement], | ||
Faculty::Science, | ||
vec![Coordinator::new( | ||
"Kirsten Carlsen".into(), | ||
"[email protected]".into(), | ||
)], | ||
), | ||
}; | ||
pretty_assertions::assert_eq!(expected_course, course.unwrap()); | ||
assert_eq!(expected_course, course.unwrap()); | ||
} | ||
|
||
// We need to ignore the duration if the course is known to be a summer course. | ||
#[ignore] | ||
#[test] | ||
fn test_NBIK15000U() { | ||
fn test_nbik15000_u() { | ||
let html = std::fs::read_to_string(format!("{}/NBIK15000U.html", TEST_HTMLS_DIR)).unwrap(); | ||
let course = parser::parse_course(&html); | ||
let expected_course = Course { | ||
title: "BAdvanced Plant Identification".to_string(), | ||
info: parser::CourseInformation::new( | ||
"NBIK15000U".to_string(), | ||
7.5, | ||
vec![parser::Block::Five], | ||
vec![parser::Block::Summer], | ||
vec![parser::Schedule::B], // doesnt exist | ||
vec![parser::Language::English], | ||
parser::Duration::One, | ||
vec![parser::Degree::Master], | ||
parser::Capacity(Some(16)), | ||
), | ||
description: Description { | ||
content: "".to_string(), | ||
learning_outcome: "".to_string(), | ||
recommended_qualifications: Some("".to_string()), | ||
summary: "".to_string(), | ||
}, | ||
exams: vec![Exam::Oral(Some(30))], | ||
workloads: Vec::new(), | ||
logistics: LogisticInformation::new(Vec::new(), Faculty::Science, Vec::new()), | ||
}; | ||
pretty_assertions::assert_eq!(expected_course, course.unwrap()); | ||
assert_eq!(expected_course, course.unwrap()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -31,8 +31,3 @@ futures-core = "0.3.30" | |
#codegen-units = 1 | ||
#panic = "abort" | ||
#debug=true | ||
|
||
|
||
[[bench]] | ||
name = "ort" | ||
harness = false |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.