1include <../std.scad>
  2
  3
  4module test_bosl_version() {
  5    assert(is_vector(bosl_version()));  // Returned value is a vector.
  6    assert(len(bosl_version())==3);  //  of three numbers.
  7    assert(bosl_version()[0]==2);  // The major version is 2.
  8    for (v=bosl_version()) {
  9        assert(floor(v)==v);  // All version parts are integers.
 10    }
 11}
 12test_bosl_version();
 13
 14
 15module test_bosl_version_num() {
 16    assert(is_num(bosl_version_num()));
 17    v = bosl_version();
 18    assert(bosl_version_num() == v[0]+v[1]/100+v[2]/1000000);
 19}
 20test_bosl_version_num();
 21
 22
 23module test_bosl_version_str() {
 24    assert(is_string(bosl_version_str()));
 25    v = bosl_version();
 26    assert(bosl_version_str() == str(v[0],".",v[1],".",v[2]));
 27}
 28test_bosl_version_str();
 29
 30
 31module test_bosl_required() {
 32    bosl_required(2.000001);
 33    bosl_required("2.0.1");
 34    bosl_required([2,0,1]);
 35}
 36test_bosl_required();
 37
 38
 39module test_version_to_list() {
 40    assert(is_list(version_to_list(2.010001)));
 41    assert(is_list(version_to_list("2.1.1")));
 42    assert(is_list(version_to_list([2,1,1])));
 43    assert(version_to_list(2.010001)==[2,1,1]);
 44    assert(version_to_list("2.1.1")==[2,1,1]);
 45    assert(version_to_list([2,1,1])==[2,1,1]);
 46    assert(version_to_list(2.010035)==[2,1,35]);
 47    assert(version_to_list(2.345678)==[2,34,5678]);
 48    assert(version_to_list("2.34.5678")==[2,34,5678]);
 49    assert(version_to_list([2,34,5678])==[2,34,5678]);
 50    assert(version_to_list([2,34,56,78])==[2,34,56]);
 51}
 52test_version_to_list();
 53
 54
 55module test_version_to_str() {
 56    assert(is_string(version_to_str(2.010001)));
 57    assert(is_string(version_to_str("2.1.1")));
 58    assert(is_string(version_to_str([2,1,1])));
 59    assert(version_to_str(2.010001)=="2.1.1");
 60    assert(version_to_str("2.1.1")=="2.1.1");
 61    assert(version_to_str([2,1,1])=="2.1.1");
 62    assert(version_to_str(2.345678)=="2.34.5678");
 63    assert(version_to_str("2.34.5678")=="2.34.5678");
 64    assert(version_to_str([2,34,5678])=="2.34.5678");
 65    assert(version_to_str([2,34,56,78])=="2.34.56");
 66}
 67test_version_to_str();
 68
 69
 70module test_version_to_num() {
 71    assert(is_num(version_to_num(2.010001)));
 72    assert(is_num(version_to_num("2.1.1")));
 73    assert(is_num(version_to_num([2,1,1])));
 74    assert(version_to_num(2.010001)==2.010001);
 75    assert(version_to_num("2.1.1")==2.010001);
 76    assert(version_to_num([2,1,1])==2.010001);
 77    assert(version_to_num(2.345678)==2.345678);
 78    assert(version_to_num("2.34.5678")==2.345678);
 79    assert(version_to_num([2,34,5678])==2.345678);
 80    assert(version_to_num([2,34,56,78])==2.340056);
 81}
 82test_version_to_num();
 83
 84
 85module test_version_cmp() {
 86    function diversify(x) = [
 87        version_to_num(x),
 88        version_to_str(x),
 89        version_to_list(x)
 90    ];
 91
 92    module testvercmp(x,y,z) {
 93        for (a = diversify(y)) {
 94            for (b = diversify(x)) {
 95                assert(version_cmp(a,b)>0);
 96            }
 97            for (b = diversify(y)) {
 98                assert(version_cmp(a,b)==0);
 99            }
100            for (b = diversify(z)) {
101                assert(version_cmp(a,b)<0);
102            }
103        }
104    }
105
106    testvercmp([2,1,33],[2,1,34],[2,1,35]);
107    testvercmp([2,2,1],[2,2,34],[2,2,67]);
108    testvercmp([2,2,34],[2,3,34],[2,4,34]);
109    testvercmp([2,3,34],[3,3,34],[4,3,34]);
110    testvercmp([2,3,34],[3,1,1],[4,1,1]);
111    testvercmp([2,1,1],[3,3,34],[4,1,1]);
112    testvercmp([2,1,1],[3,1,1],[4,3,34]);
113}
114test_version_cmp();
115
116
117// vim: expandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap