A simple library written in pure Mojo🔥, the new faster, compiled, and stricter superset of Python, by Modular.
Features include:
A struct which implements list of Strings with:
var l = List()
l += 1
l += 2
l += 3
var s = String("")
for i in l:
s += i
s == "123"
Tests for List struct. Needs greater list coverage
Contains:
fn str_to_float(s: String) raises -> Float64:
fn format_float(f: Float64, dec_places: Int) -> String:
format_float
rounds up on half, soformat_float(3.14159, 4)
becomes3.1416
.
Tests for fu.str_to_float
and fu.format_float
.
Contains:
fn endswith(input_string: String, suffix: String, start: Int = 0, owned end: Int = -1) raises -> Bool:
fn trim(s: String, leading: String, trailing: String) -> String:
fn find(s: String, sub: String) -> Int:
fn split(s: String, sep: String) -> List:
Only tests for fn split(s: String, sep: String) -> List:
at the moment.
A struct which represents a simple 2 dimensional matrix capable of storing Float64 numbers.
Contains many functions a lot of which have not even been tested casually, var alone by formal unit tests. Proceed with caution!
Only tests for initialising from string...
var m1 = Matrix("[[1.1, 1.1, 1.1], [2.2, 2.2, 2.2], [3.3, 3.3, 3.3], [4.4, 4.4, 4.4]]")
and for adding...var m3 = m1 + m2
and for converting back to string...return m3.string_to(1) == "[[2.2, 2.2, 2.2], [3.3, 3.3, 3.3], [4.4, 4.4, 4.4], [5.5, 5.5, 5.5]]"
A modest test framework. For example...
from teetest import TeeTest
from ca_lib.float_utils import fu
fn test_str_to_float_to_rounded_string() raises -> Tuple[Bool, StringLiteral]:
alias pi_str = "3.1415926234534563"
var pi = fu.str_to_float(pi_str)
var assert1 = fu.format_float(pi, 5) == "3.14159"
var assert2 = fu.format_float(pi, 6) == "3.141593"
var assert3 = fu.format_float(pi, 7) == "3.1415926"
return assert1 and assert2 and assert3,
__source_location().function_name
fn main():
TeeTest(
test_str_to_float_to_rounded_string,
).run_tests()