浏览代码

Bring back most example programs

David Peter 1 年之前
父节点
当前提交
9ef0ba0e79

+ 36 - 36
examples/chemistry_tests.nbt

@@ -6,43 +6,43 @@
 # - https://en.wikipedia.org/wiki/Ionization_energies_of_the_elements_(data_page)
 # - https://en.wikipedia.org/wiki/Enthalpy_of_vaporization
 
-let w = element("tungsten")
-assert(w.symbol == "W")
-assert(w.name == "Tungsten")
-assert_eq(w.atomic_number, 74)
-assert_eq(w.group, 6)
-assert_eq(w.period, 6)
-assert_eq(w.melting_point, 3695 K, 20 K)
-# assert_eq(w.boiling_point, 6203 K, 20 K)     # <-- this seems to be wrong in the `mendeleev` crate
-assert_eq(w.density, 19.25 g/cm³, 0.1 g/cm³)
-assert_eq(w.electron_affinity, 0.816 eV, 0.01 eV)
-assert_eq(w.ionization_energy, 7.8640 eV, 0.2 eV)
-assert_eq(w.vaporization_heat, 807 kJ/mol, 20 kJ/mol)
+# let w = element("tungsten")
+# assert(w.symbol == "W")
+# assert(w.name == "Tungsten")
+# assert_eq(w.atomic_number, 74)
+# assert_eq(w.group, 6)
+# assert_eq(w.period, 6)
+# assert_eq(w.melting_point, 3695 K, 20 K)
+# # assert_eq(w.boiling_point, 6203 K, 20 K)     # <-- this seems to be wrong in the `mendeleev` crate
+# assert_eq(w.density, 19.25 g/cm³, 0.1 g/cm³)
+# assert_eq(w.electron_affinity, 0.816 eV, 0.01 eV)
+# assert_eq(w.ionization_energy, 7.8640 eV, 0.2 eV)
+# assert_eq(w.vaporization_heat, 807 kJ/mol, 20 kJ/mol)
 
 
-let chl = element("chlorine")
-assert(chl.symbol == "Cl")
-assert(chl.name == "Chlorine")
-assert_eq(chl.atomic_number, 17)
-assert_eq(chl.group, 17)
-assert_eq(chl.period, 3)
-assert_eq(chl.melting_point, 171.6 K, 1 K)
-assert_eq(chl.boiling_point, 239.11 K, 1 K)
-assert_eq(chl.density, 3.2 g/L, 0.1 g/L)
-assert_eq(chl.electron_affinity, 3.612 eV, 0.01 eV)
-assert_eq(chl.ionization_energy, 12.96764 eV, 0.01 eV)
-assert_eq(chl.vaporization_heat, 20.4 kJ/mol, 0.1 kJ/mol)
+# let chl = element("chlorine")
+# assert(chl.symbol == "Cl")
+# assert(chl.name == "Chlorine")
+# assert_eq(chl.atomic_number, 17)
+# assert_eq(chl.group, 17)
+# assert_eq(chl.period, 3)
+# assert_eq(chl.melting_point, 171.6 K, 1 K)
+# assert_eq(chl.boiling_point, 239.11 K, 1 K)
+# assert_eq(chl.density, 3.2 g/L, 0.1 g/L)
+# assert_eq(chl.electron_affinity, 3.612 eV, 0.01 eV)
+# assert_eq(chl.ionization_energy, 12.96764 eV, 0.01 eV)
+# assert_eq(chl.vaporization_heat, 20.4 kJ/mol, 0.1 kJ/mol)
 
 
-let rb = element("rubidium")
-assert(rb.symbol == "Rb")
-assert(rb.name == "Rubidium")
-assert_eq(rb.atomic_number, 37)
-assert_eq(rb.group, 1)
-assert_eq(rb.period, 5)
-assert_eq(rb.melting_point, 312.45 K, 0.3 K)
-assert_eq(rb.boiling_point, 961 K, 0.3 K)
-assert_eq(rb.density, 1.534 g/cm³, 0.01 g/cm³)
-assert_eq(rb.electron_affinity, 0.485 eV, 0.02 eV)
-assert_eq(rb.ionization_energy, 4.1771 eV, 0.01 eV)
-assert_eq(rb.vaporization_heat, 75.8 kJ/mol, 0.1 kJ/mol)
+# let rb = element("rubidium")
+# assert(rb.symbol == "Rb")
+# assert(rb.name == "Rubidium")
+# assert_eq(rb.atomic_number, 37)
+# assert_eq(rb.group, 1)
+# assert_eq(rb.period, 5)
+# assert_eq(rb.melting_point, 312.45 K, 0.3 K)
+# assert_eq(rb.boiling_point, 961 K, 0.3 K)
+# assert_eq(rb.density, 1.534 g/cm³, 0.01 g/cm³)
+# assert_eq(rb.electron_affinity, 0.485 eV, 0.02 eV)
+# assert_eq(rb.ionization_energy, 4.1771 eV, 0.01 eV)
+# assert_eq(rb.vaporization_heat, 75.8 kJ/mol, 0.1 kJ/mol)

+ 38 - 38
examples/datetime_human_tests.nbt

@@ -1,38 +1,38 @@
-assert((0 second         -> human) == "0 seconds")
-assert((1 second         -> human) == "1 second")
-assert((5 second         -> human) == "5 seconds")
-assert((1.5 second       -> human) == "1.500 seconds")
-
-assert((60 seconds       -> human) == "1 minute")
-assert((73 seconds       -> human) == "1 minute + 13 seconds")
-assert((120 seconds      -> human) == "2 minutes")
-assert((60.1 seconds     -> human) == "1 minute + 0.100 seconds")
-assert((1 minute         -> human) == "1 minute")
-assert((1.25 minute      -> human) == "1 minute + 15 seconds")
-assert((2.5 minute       -> human) == "2 minutes + 30 seconds")
-
-assert((1 hour           -> human) == "1 hour")
-assert((1.5 hour         -> human) == "1 hour + 30 minutes")
-assert((2 hour           -> human) == "2 hours")
-assert((1 hour + 1 sec   -> human) == "1 hour + 1 second")
-
-assert((1 day            -> human) == "1 day")
-assert((1.37 day         -> human) == "1 day + 8 hours + 52 minutes + 48 seconds")
-
-assert((1 week           -> human) == "7 days")
-assert((1.5 weeks        -> human) == "10 days + 12 hours")
-assert((2 weeks          -> human) == "14 days")
-
-assert((1 sidereal_day   -> human) == "23 hours + 56 minutes + 4.090500 seconds")
-
-assert((10000 days       -> human) == "10000 days")
-assert((50 million days  -> human) == "50_000_000 days")
-
-assert((1e12 days        -> human) == "1_000_000_000_000 days")
-assert((1e15 days        -> human) == "1.0e+15 days")
-
-assert((1 ms             -> human) == "0.001 seconds")
-assert((1 µs             -> human) == "0.000001 seconds")
-assert((1 ns             -> human) == "0.000000001 seconds")
-assert((1234 ns          -> human) == "0.000001234 seconds")
-assert((1s + 1234 ns     -> human) == "1.000001234 seconds")
+# assert((0 second         -> human) == "0 seconds")
+# assert((1 second         -> human) == "1 second")
+# assert((5 second         -> human) == "5 seconds")
+# assert((1.5 second       -> human) == "1.500 seconds")
+
+# assert((60 seconds       -> human) == "1 minute")
+# assert((73 seconds       -> human) == "1 minute + 13 seconds")
+# assert((120 seconds      -> human) == "2 minutes")
+# assert((60.1 seconds     -> human) == "1 minute + 0.100 seconds")
+# assert((1 minute         -> human) == "1 minute")
+# assert((1.25 minute      -> human) == "1 minute + 15 seconds")
+# assert((2.5 minute       -> human) == "2 minutes + 30 seconds")
+
+# assert((1 hour           -> human) == "1 hour")
+# assert((1.5 hour         -> human) == "1 hour + 30 minutes")
+# assert((2 hour           -> human) == "2 hours")
+# assert((1 hour + 1 sec   -> human) == "1 hour + 1 second")
+
+# assert((1 day            -> human) == "1 day")
+# assert((1.37 day         -> human) == "1 day + 8 hours + 52 minutes + 48 seconds")
+
+# assert((1 week           -> human) == "7 days")
+# assert((1.5 weeks        -> human) == "10 days + 12 hours")
+# assert((2 weeks          -> human) == "14 days")
+
+# assert((1 sidereal_day   -> human) == "23 hours + 56 minutes + 4.090500 seconds")
+
+# assert((10000 days       -> human) == "10000 days")
+# assert((50 million days  -> human) == "50_000_000 days")
+
+# assert((1e12 days        -> human) == "1_000_000_000_000 days")
+# assert((1e15 days        -> human) == "1.0e+15 days")
+
+# assert((1 ms             -> human) == "0.001 seconds")
+# assert((1 µs             -> human) == "0.000001 seconds")
+# assert((1 ns             -> human) == "0.000000001 seconds")
+# assert((1234 ns          -> human) == "0.000001234 seconds")
+# assert((1s + 1234 ns     -> human) == "1.000001234 seconds")

+ 14 - 14
examples/datetime_tests.nbt

@@ -1,19 +1,19 @@
-let epoch = datetime("1970-01-01T00:00:00Z")
-assert_eq(epoch -> unixtime, 0)
+# let epoch = datetime("1970-01-01T00:00:00Z")
+# assert_eq(epoch -> unixtime, 0)
 
-assert_eq(epoch + 1000 milliseconds + 2 seconds -> unixtime, 3)
+# assert_eq(epoch + 1000 milliseconds + 2 seconds -> unixtime, 3)
 
-let x = datetime("Wed, 20 Jul 2022 21:52:05 +0200")
-assert_eq(x -> unixtime, 1658346725)
+# let x = datetime("Wed, 20 Jul 2022 21:52:05 +0200")
+# assert_eq(x -> unixtime, 1658346725)
 
-assert_eq(from_unixtime(1658346725) -> unixtime, 1658346725)
+# assert_eq(from_unixtime(1658346725) -> unixtime, 1658346725)
 
-# 2020 was a leap year
-let y = datetime("2020-02-28 20:00 UTC")
-assert(format_datetime("%Y/%m/%d", y + 12 hours) == "2020/02/29")
-let z = datetime("2021-02-28 20:00 UTC")
-assert(format_datetime("%Y/%m/%d", z + 12 hours) == "2021/03/01")
+# # 2020 was a leap year
+# let y = datetime("2020-02-28 20:00 UTC")
+# assert(format_datetime("%Y/%m/%d", y + 12 hours) == "2020/02/29")
+# let z = datetime("2021-02-28 20:00 UTC")
+# assert(format_datetime("%Y/%m/%d", z + 12 hours) == "2021/03/01")
 
-# Regression test for #376
-let dt_376 = datetime("Fri, 23 Feb 2024 14:01:54 -0800")
-assert(format_datetime("%Y-%m-%dT%H:%M:%S%:z", dt_376) == "2024-02-23T14:01:54-08:00")
+# # Regression test for #376
+# let dt_376 = datetime("Fri, 23 Feb 2024 14:01:54 -0800")
+# assert(format_datetime("%Y-%m-%dT%H:%M:%S%:z", dt_376) == "2024-02-23T14:01:54-08:00")

+ 18 - 18
examples/paper_size.nbt

@@ -2,27 +2,27 @@
 #
 # https://en.wikipedia.org/wiki/ISO_216
 
-struct PaperSize {
-    width: Length,
-    height: Length,
-}
+# struct PaperSize {
+#     width: Length,
+#     height: Length,
+# }
 
-let size_A0 = PaperSize { width: 841 mm, height: 1189 mm }
+# let size_A0 = PaperSize { width: 841 mm, height: 1189 mm }
 
-fn paper_size_A(n: Scalar) -> PaperSize =
-    PaperSize {
-        width: floor(size_A0.width / 2^(n / 2)),
-        height: floor(size_A0.height / 2^(n / 2)),
-    }
+# fn paper_size_A(n: Scalar) -> PaperSize =
+#     PaperSize {
+#         width: floor(size_A0.width / 2^(n / 2)),
+#         height: floor(size_A0.height / 2^(n / 2)),
+#     }
 
-fn paper_area(size: PaperSize) -> Area =
-    size.width * size.height
+# fn paper_area(size: PaperSize) -> Area =
+#     size.width * size.height
 
-assert_eq(paper_size_A(3).width,  297 mm)
-assert_eq(paper_size_A(3).height, 420 mm)
+# assert_eq(paper_size_A(3).width,  297 mm)
+# assert_eq(paper_size_A(3).height, 420 mm)
 
-assert_eq(paper_size_A(4).width,  210 mm)
-assert_eq(paper_size_A(4).height, 297 mm)
+# assert_eq(paper_size_A(4).width,  210 mm)
+# assert_eq(paper_size_A(4).height, 297 mm)
 
-assert_eq(paper_size_A(5).width,  148 mm)
-assert_eq(paper_size_A(5).height, 210 mm)
+# assert_eq(paper_size_A(5).width,  148 mm)
+# assert_eq(paper_size_A(5).height, 210 mm)

+ 1 - 1
numbat/modules/chemistry/elements.nbt

@@ -1,4 +1,4 @@
-use units::si
+# use units::si
 
 # struct _ChemicalElementRaw {
 #     symbol: String,

+ 2 - 2
numbat/tests/prelude_and_examples.rs

@@ -74,12 +74,12 @@ fn run_for_each_file(glob_pattern: &str, f: impl Fn(&str)) {
 
 #[test]
 fn modules_are_self_consistent() {
-    //run_for_each_file("modules/**/*.nbt", assert_runs_without_prelude);
+    run_for_each_file("modules/**/*.nbt", assert_runs_without_prelude);
 }
 
 #[test]
 fn examples_can_be_parsed_and_interpreted() {
-    //run_for_each_file("../examples/*.nbt", assert_runs);
+    run_for_each_file("../examples/*.nbt", assert_runs);
 }
 
 #[test]