From 8513473852d59982e8652920292bbe740b1f7592 Mon Sep 17 00:00:00 2001 From: YaleChen299 Date: Sun, 9 Oct 2022 21:21:27 +0800 Subject: [PATCH 1/2] add source versions --- lib/cadet/assessments/library.ex | 6 +++++- lib/cadet/courses/course.ex | 8 ++++---- test/cadet/assessments/library_test.exs | 6 +++++- test/cadet/courses/course_test.exs | 9 +++++++++ 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/lib/cadet/assessments/library.ex b/lib/cadet/assessments/library.ex index 00a7f3d2d..58936573f 100644 --- a/lib/cadet/assessments/library.ex +++ b/lib/cadet/assessments/library.ex @@ -55,10 +55,14 @@ defmodule Cadet.Assessments.Library do @valid_chapter_variants [ {1, "wasm"}, {1, "lazy"}, + {1, "native"}, {2, "lazy"}, + {2, "native"}, {3, "concurrent"}, {3, "non-det"}, - {4, "gpu"} + {3, "native"}, + {4, "gpu"}, + {4, "native"}, ] defp validate_chapter_variant(changeset) do diff --git a/lib/cadet/courses/course.ex b/lib/cadet/courses/course.ex index 9b9ebaeb1..100cff054 100644 --- a/lib/cadet/courses/course.ex +++ b/lib/cadet/courses/course.ex @@ -59,16 +59,16 @@ defmodule Cadet.Courses.Course do {true, true} -> case get_field(changeset, :source_chapter) do 1 -> - validate_inclusion(changeset, :source_variant, ["default", "lazy", "wasm"]) + validate_inclusion(changeset, :source_variant, ["default", "lazy", "wasm", "native"]) 2 -> - validate_inclusion(changeset, :source_variant, ["default", "lazy"]) + validate_inclusion(changeset, :source_variant, ["default", "lazy", "native"]) 3 -> - validate_inclusion(changeset, :source_variant, ["default", "concurrent", "non-det"]) + validate_inclusion(changeset, :source_variant, ["default", "concurrent", "non-det", "native"]) 4 -> - validate_inclusion(changeset, :source_variant, ["default", "gpu"]) + validate_inclusion(changeset, :source_variant, ["default", "gpu", "native"]) _ -> add_error(changeset, :source_chapter, "is invalid") diff --git a/test/cadet/assessments/library_test.exs b/test/cadet/assessments/library_test.exs index 4608eafdd..5bb949e09 100644 --- a/test/cadet/assessments/library_test.exs +++ b/test/cadet/assessments/library_test.exs @@ -40,13 +40,17 @@ defmodule Cadet.Assessments.LibraryTest do {1, "default"}, {1, "wasm"}, {1, "lazy"}, + {1, "native"}, {2, "default"}, {2, "lazy"}, + {2, "native"}, {3, "default"}, {3, "concurrent"}, {3, "non-det"}, + {3, "native"}, {4, "default"}, - {4, "gpu"} + {4, "gpu"}, + {4, "native"} ] for {c, v} <- variants do diff --git a/test/cadet/courses/course_test.exs b/test/cadet/courses/course_test.exs index da782b36c..d95a2dcf1 100644 --- a/test/cadet/courses/course_test.exs +++ b/test/cadet/courses/course_test.exs @@ -123,6 +123,15 @@ defmodule Cadet.Courses.CourseTest do :valid ) + assert_changeset( + %{ + source_chapter: 3, + source_variant: "native", + course_name: "Data Structures and Algorithms" + }, + :valid + ) + assert_changeset( %{ source_chapter: 4, From 9321a57a0832d963076e4ffbbb2410ccf9ee766d Mon Sep 17 00:00:00 2001 From: YaleChen299 Date: Sun, 9 Oct 2022 21:41:40 +0800 Subject: [PATCH 2/2] fix format --- lib/cadet/assessments/library.ex | 2 +- lib/cadet/courses/course.ex | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/cadet/assessments/library.ex b/lib/cadet/assessments/library.ex index 58936573f..a847d7545 100644 --- a/lib/cadet/assessments/library.ex +++ b/lib/cadet/assessments/library.ex @@ -62,7 +62,7 @@ defmodule Cadet.Assessments.Library do {3, "non-det"}, {3, "native"}, {4, "gpu"}, - {4, "native"}, + {4, "native"} ] defp validate_chapter_variant(changeset) do diff --git a/lib/cadet/courses/course.ex b/lib/cadet/courses/course.ex index 100cff054..c3258e11b 100644 --- a/lib/cadet/courses/course.ex +++ b/lib/cadet/courses/course.ex @@ -65,7 +65,12 @@ defmodule Cadet.Courses.Course do validate_inclusion(changeset, :source_variant, ["default", "lazy", "native"]) 3 -> - validate_inclusion(changeset, :source_variant, ["default", "concurrent", "non-det", "native"]) + validate_inclusion(changeset, :source_variant, [ + "default", + "concurrent", + "non-det", + "native" + ]) 4 -> validate_inclusion(changeset, :source_variant, ["default", "gpu", "native"])