|
1450 | 1450 | @db.drop_table?(:a) |
1451 | 1451 | end |
1452 | 1452 |
|
| 1453 | + it "should have working #each" do |
| 1454 | + a = [] |
| 1455 | + @ds.each {|r| a << r} |
| 1456 | + a.must_equal [{:a=>1, :b=>2, :c=>3, :d=>4}, {:a=>5, :b=>6, :c=>7, :d=>8}] |
| 1457 | + a = [] |
| 1458 | + @ds.extension(:null_dataset).nullify.each {|r| a << r} |
| 1459 | + a.must_equal([]) |
| 1460 | + end |
| 1461 | + |
| 1462 | + it "should have working #all" do |
| 1463 | + @ds.all.must_equal [{:a=>1, :b=>2, :c=>3, :d=>4}, {:a=>5, :b=>6, :c=>7, :d=>8}] |
| 1464 | + @ds.all{|r| r[:a] += 1}.must_equal [{:a=>2, :b=>2, :c=>3, :d=>4}, {:a=>6, :b=>6, :c=>7, :d=>8}] |
| 1465 | + @ds.with_row_proc(proc{|r| r[:a] += 1; r}).all.must_equal [{:a=>2, :b=>2, :c=>3, :d=>4}, {:a=>6, :b=>6, :c=>7, :d=>8}] |
| 1466 | + @ds.with_row_proc(proc{|r| r[:a] += 1; r}).all{|r| r[:a] *= 4}.must_equal [{:a=>8, :b=>2, :c=>3, :d=>4}, {:a=>24, :b=>6, :c=>7, :d=>8}] |
| 1467 | + @ds.extension(:null_dataset).nullify.all.must_equal([]) |
| 1468 | + Sequel::Model(@ds).dataset.extension(:null_dataset).nullify.all.must_equal([]) |
| 1469 | + end |
| 1470 | + |
1453 | 1471 | it "should have working #map" do |
| 1472 | + @ds.map(:x).must_equal [nil, nil] |
1454 | 1473 | @ds.map(:a).must_equal [1, 5] |
1455 | 1474 | @ds.map(:b).must_equal [2, 6] |
1456 | 1475 | @ds.map([:a, :b]).must_equal [[1, 2], [5, 6]] |
| 1476 | + null_ds = @ds.extension(:null_dataset).nullify |
| 1477 | + null_ds.map(:a).must_equal([]) |
| 1478 | + null_ds.map([:a, :b]).must_equal([]) |
1457 | 1479 | end |
1458 | 1480 |
|
1459 | 1481 | it "should have working #as_hash" do |
| 1482 | + @ds.to_hash(:x, :x).must_equal(nil=>nil) |
| 1483 | + @ds.to_hash(:x, [:x]).must_equal(nil=>[nil]) |
| 1484 | + @ds.to_hash([:x], :x).must_equal([nil]=>nil) |
| 1485 | + @ds.to_hash([:x], [:x]).must_equal([nil]=>[nil]) |
1460 | 1486 | @ds.to_hash(:a).must_equal(1=>{:a=>1, :b=>2, :c=>3, :d=>4}, 5=>{:a=>5, :b=>6, :c=>7, :d=>8}) |
1461 | 1487 | @ds.as_hash(:a).must_equal(1=>{:a=>1, :b=>2, :c=>3, :d=>4}, 5=>{:a=>5, :b=>6, :c=>7, :d=>8}) |
1462 | 1488 | @ds.as_hash(:b).must_equal(2=>{:a=>1, :b=>2, :c=>3, :d=>4}, 6=>{:a=>5, :b=>6, :c=>7, :d=>8}) |
|
1466 | 1492 | @ds.as_hash([:a, :c], :b).must_equal([1, 3]=>2, [5, 7]=>6) |
1467 | 1493 | @ds.as_hash(:a, [:b, :c]).must_equal(1=>[2, 3], 5=>[6, 7]) |
1468 | 1494 | @ds.as_hash([:a, :c], [:b, :d]).must_equal([1, 3]=>[2, 4], [5, 7]=>[6, 8]) |
1469 | | - @ds.extension(:null_dataset).nullify.as_hash([:a, :c], [:b, :d]).must_equal({}) |
| 1495 | + null_ds = @ds.extension(:null_dataset).nullify |
| 1496 | + null_ds.as_hash(:a, :b).must_equal({}) |
| 1497 | + null_ds.as_hash([:a, :c], :b).must_equal({}) |
| 1498 | + null_ds.as_hash(:a, [:b, :d]).must_equal({}) |
| 1499 | + null_ds.as_hash([:a, :c], [:b, :d]).must_equal({}) |
1470 | 1500 |
|
1471 | 1501 | @ds.as_hash(:a, :b, :hash => (tmp = {})).must_be_same_as(tmp) |
1472 | 1502 | end |
1473 | 1503 |
|
1474 | 1504 | it "should have working #to_hash_groups" do |
1475 | 1505 | ds = @ds.order(*@ds.columns) |
1476 | 1506 | wait{ds.insert(1, 2, 3, 9)} |
| 1507 | + @ds.to_hash_groups(:x, :x).must_equal(nil=>[nil]*3) |
| 1508 | + @ds.to_hash_groups(:x, [:x]).must_equal(nil=>[[nil]]*3) |
| 1509 | + @ds.to_hash_groups([:x], :x).must_equal([nil]=>[nil]*3) |
| 1510 | + @ds.to_hash_groups([:x], [:x]).must_equal([nil]=>[[nil]]*3) |
1477 | 1511 | ds.to_hash_groups(:a).must_equal(1=>[{:a=>1, :b=>2, :c=>3, :d=>4}, {:a=>1, :b=>2, :c=>3, :d=>9}], 5=>[{:a=>5, :b=>6, :c=>7, :d=>8}]) |
1478 | 1512 | ds.to_hash_groups(:b).must_equal(2=>[{:a=>1, :b=>2, :c=>3, :d=>4}, {:a=>1, :b=>2, :c=>3, :d=>9}], 6=>[{:a=>5, :b=>6, :c=>7, :d=>8}]) |
1479 | 1513 | ds.to_hash_groups([:a, :b]).must_equal([1, 2]=>[{:a=>1, :b=>2, :c=>3, :d=>4}, {:a=>1, :b=>2, :c=>3, :d=>9}], [5, 6]=>[{:a=>5, :b=>6, :c=>7, :d=>8}]) |
|
1482 | 1516 | ds.to_hash_groups([:a, :c], :d).must_equal([1, 3]=>[4, 9], [5, 7]=>[8]) |
1483 | 1517 | ds.to_hash_groups(:a, [:b, :d]).must_equal(1=>[[2, 4], [2, 9]], 5=>[[6, 8]]) |
1484 | 1518 | ds.to_hash_groups([:a, :c], [:b, :d]).must_equal([1, 3]=>[[2, 4], [2, 9]], [5, 7]=>[[6, 8]]) |
1485 | | - @ds.extension(:null_dataset).nullify.to_hash_groups([:a, :c], [:b, :d]).must_equal({}) |
| 1519 | + null_ds = @ds.extension(:null_dataset).nullify |
| 1520 | + null_ds.to_hash_groups(:a, :b).must_equal({}) |
| 1521 | + null_ds.to_hash_groups([:a, :c], :b).must_equal({}) |
| 1522 | + null_ds.to_hash_groups(:a, [:b, :d]).must_equal({}) |
| 1523 | + null_ds.to_hash_groups([:a, :c], [:b, :d]).must_equal({}) |
1486 | 1524 |
|
1487 | 1525 | ds.to_hash_groups(:a, :d, :hash => (tmp = {})).must_be_same_as(tmp) |
1488 | 1526 | end |
1489 | 1527 |
|
1490 | 1528 | it "should have working #as_set" do |
| 1529 | + @ds.as_set(:x).must_equal Set[nil] |
1491 | 1530 | @ds.as_set(:a).must_equal Set[1, 5] |
1492 | 1531 | @ds.as_set(:b).must_equal Set[2, 6] |
1493 | 1532 | @ds.as_set([:a, :b]).must_equal Set[[1, 2], [5, 6]] |
| 1533 | + null_ds = @ds.extension(:null_dataset).nullify |
| 1534 | + null_ds.as_set(:a).must_equal Set[] |
| 1535 | + null_ds.as_set([:a, :b]).must_equal Set[] |
1494 | 1536 | end |
1495 | 1537 |
|
1496 | 1538 | it "should have working #select_map" do |
1497 | 1539 | @ds.select_map(:a).must_equal [1, 5] |
1498 | 1540 | @ds.select_map(:b).must_equal [2, 6] |
1499 | 1541 | @ds.select_map([:a]).must_equal [[1], [5]] |
1500 | 1542 | @ds.select_map([:a, :b]).must_equal [[1, 2], [5, 6]] |
1501 | | - @ds.extension(:null_dataset).nullify.select_map([:a, :b]).must_equal [] |
| 1543 | + null_ds = @ds.extension(:null_dataset).nullify |
| 1544 | + null_ds.select_map(:a).must_equal [] |
| 1545 | + null_ds.select_map([:a, :b]).must_equal [] |
1502 | 1546 |
|
1503 | 1547 | @ds.select_map(Sequel[:a].as(:e)).must_equal [1, 5] |
1504 | 1548 | @ds.select_map(Sequel[:b].as(:e)).must_equal [2, 6] |
|
1516 | 1560 | @ds.select_order_map(Sequel.qualify(:a, :b).as(:e)).must_equal [2, 6] |
1517 | 1561 | @ds.select_order_map([:a]).must_equal [[1], [5]] |
1518 | 1562 | @ds.select_order_map([Sequel.desc(:a), :b]).must_equal [[5, 6], [1, 2]] |
1519 | | - @ds.extension(:null_dataset).nullify.select_order_map(:a).must_equal [] |
| 1563 | + null_ds = @ds.extension(:null_dataset).nullify |
| 1564 | + null_ds.select_order_map(:a).must_equal [] |
| 1565 | + null_ds.select_order_map([:a, :b]).must_equal [] |
1520 | 1566 |
|
1521 | 1567 | @ds.select_order_map(Sequel[:a].as(:e)).must_equal [1, 5] |
1522 | 1568 | @ds.select_order_map(Sequel[:b].as(:e)).must_equal [2, 6] |
|
1537 | 1583 | @ds.select_hash(:a, [:b, :c]).must_equal(1=>[2, 3], 5=>[6, 7]) |
1538 | 1584 | @ds.select_hash([:a, :c], [:b, :d]).must_equal([1, 3]=>[2, 4], [5, 7]=>[6, 8]) |
1539 | 1585 | @ds.select_hash(:a, :b, :hash => (tmp = {})).must_be_same_as(tmp) |
1540 | | - @ds.extension(:null_dataset).nullify.select_hash(:a, :b).must_equal({}) |
| 1586 | + null_ds = @ds.extension(:null_dataset).nullify |
| 1587 | + null_ds.select_hash(:a, :b).must_equal({}) |
| 1588 | + null_ds.select_hash([:a, :c], :b).must_equal({}) |
| 1589 | + null_ds.select_hash(:a, [:b, :d]).must_equal({}) |
| 1590 | + null_ds.select_hash([:a, :c], [:b, :d]).must_equal({}) |
1541 | 1591 | end |
1542 | 1592 |
|
1543 | 1593 | it "should have working #select_hash_groups" do |
|
1552 | 1602 | ds.select_hash_groups(:a, [:b, :d]).must_equal(1=>[[2, 4], [2, 9]], 5=>[[6, 8]]) |
1553 | 1603 | ds.select_hash_groups([:a, :c], [:b, :d]).must_equal([1, 3]=>[[2, 4], [2, 9]], [5, 7]=>[[6, 8]]) |
1554 | 1604 | ds.select_hash_groups(:a, :d, :hash => (tmp = {})).must_be_same_as(tmp) |
1555 | | - @ds.extension(:null_dataset).nullify.select_hash_groups(:a, :d).must_equal({}) |
| 1605 | + null_ds = @ds.extension(:null_dataset).nullify |
| 1606 | + null_ds.select_hash_groups(:a, :b).must_equal({}) |
| 1607 | + null_ds.select_hash_groups([:a, :c], :b).must_equal({}) |
| 1608 | + null_ds.select_hash_groups(:a, [:b, :d]).must_equal({}) |
| 1609 | + null_ds.select_hash_groups([:a, :c], [:b, :d]).must_equal({}) |
1556 | 1610 | end |
1557 | 1611 |
|
1558 | 1612 | it "should have working #select_set" do |
1559 | 1613 | @ds.select_set(:a).must_equal Set[1, 5] |
1560 | 1614 | @ds.select_set(:b).must_equal Set[2, 6] |
1561 | 1615 | @ds.select_set([:a]).must_equal Set[[1], [5]] |
1562 | 1616 | @ds.select_set([:a, :b]).must_equal Set[[1, 2], [5, 6]] |
1563 | | - @ds.extension(:null_dataset).nullify.select_set([:a, :b]).must_equal Set[] |
| 1617 | + null_ds = @ds.extension(:null_dataset).nullify |
| 1618 | + null_ds.select_set(:a).must_equal Set[] |
| 1619 | + null_ds.select_set([:a, :b]).must_equal Set[] |
1564 | 1620 |
|
1565 | 1621 | @ds.select_set(Sequel[:a].as(:e)).must_equal Set[1, 5] |
1566 | 1622 | @ds.select_set(Sequel[:b].as(:e)).must_equal Set[2, 6] |
|
0 commit comments