Revision 591:eb27901664cd

View differences:

src/may/matrix.yeti
444 444
    equal' (==) vec.equal;
445 445

  
446 446
fromRows rows =
447
   (if any do r: vec.length r != vec.length (head rows) done rows then
448
        failWith "Inconsistent row lengths in fromRows (\(map vec.length rows))";
449
    fi;
447 450
    {
448 451
        size = { 
449 452
            rows = length rows, 
......
453 456
                fi,
454 457
        },
455 458
        data = DenseRows (array rows)
456
    };
459
    });
457 460

  
458 461
fromColumns cols =
462
   (if any do c: vec.length c != vec.length (head cols) done cols then
463
        failWith "Inconsistent column lengths in fromColumns (\(map vec.length cols))";
464
    fi;
459 465
    {
460 466
        size = { 
461 467
            columns = length cols, 
......
465 471
                fi,
466 472
        },
467 473
        data = DenseCols (array cols)
468
    };
474
    });
469 475

  
470 476
fromLists data = 
471 477
    case data of
src/may/matrix/test/test_matrix.yeti
284 284
    compareMatrices m' (fromRows [[1],[0],[3]]);
285 285
),
286 286

  
287
"mapRows-fail-\(name)": \(
288
    try
289
        m = fromRows [[1,4],[0,5],[3,6]];
290
        \() (mat.mapRows
291
            do r: 
292
                if vec.at r 0 == 1
293
                then vec.concat [r, r] 
294
                else vec.resizedTo 1 r
295
                fi 
296
            done m);
297
        false
298
    catch FailureException e:
299
        true
300
    yrt
301
),
302

  
287 303
"mapColumns-\(name)": \(
288 304
    m = fromRows [[1,4],[0,5],[3,6]];
289 305
    m' = fromColumns [[1,0,3],[4,5,6]];
......
304 320
    compareMatrices m' (fromColumns [[1],[0],[3]]);
305 321
),
306 322

  
323
"mapColumns-fail-\(name)": \(
324
    try
325
        m = fromColumns [[1,4],[0,5],[3,6]];
326
        \() (mat.mapColumns
327
            do r: 
328
                if vec.at r 0 == 1
329
                then vec.concat [r, r] 
330
                else vec.resizedTo 1 r
331
                fi 
332
            done m);
333
        false
334
    catch FailureException e:
335
        true
336
    yrt
337
),
338

  
307 339
"minValue-\(name)": \(
308 340
    compare (mat.minValue (fromRows [[1,2],[3,4],[5,-1]])) (-1) and
309 341
    compare (mat.minValue (fromRows [[1,2],[3,0],[5,-1]])) (-1) and

Also available in: Unified diff