<s> from __future__ import absolute_import , print_function , division <EOL> from petl . compat import OrderedDict <EOL> from petl . test . helpers import ieq <EOL> from petl . transform . maps import fieldmap , rowmap , rowmapmany <EOL> def test_fieldmap ( ) : <EOL> table = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ) <EOL> mappings = OrderedDict ( ) <EOL> mappings [ '<STR_LIT>' ] = '<STR_LIT:id>' <EOL> mappings [ '<STR_LIT>' ] = '<STR_LIT>' , { '<STR_LIT>' : '<STR_LIT:M>' , '<STR_LIT>' : '<STR_LIT:F>' } <EOL> mappings [ '<STR_LIT>' ] = '<STR_LIT>' , lambda v : v * <NUM_LIT:12> <EOL> mappings [ '<STR_LIT>' ] = lambda rec : rec [ '<STR_LIT>' ] / rec [ '<STR_LIT>' ] ** <NUM_LIT:2> <EOL> actual = fieldmap ( table , mappings ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT:M>' , <NUM_LIT:16> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT:M>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) ) <EOL> ieq ( expect , actual ) <EOL> ieq ( expect , actual ) <EOL> actual = fieldmap ( table ) <EOL> actual [ '<STR_LIT>' ] = '<STR_LIT:id>' <EOL> actual [ '<STR_LIT>' ] = '<STR_LIT>' , { '<STR_LIT>' : '<STR_LIT:M>' , '<STR_LIT>' : '<STR_LIT:F>' } <EOL> actual [ '<STR_LIT>' ] = '<STR_LIT>' , lambda v : v * <NUM_LIT:12> <EOL> actual [ '<STR_LIT>' ] = '<STR_LIT>' <EOL> ieq ( expect , actual ) <EOL> table2 = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> , <NUM_LIT> ) ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT:M>' , <NUM_LIT:16> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT:M>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> * <NUM_LIT:12> , None ) ) <EOL> actual = fieldmap ( table2 , mappings ) <EOL> ieq ( expect , actual ) <EOL> def test_fieldmap_record_access ( ) : <EOL> table = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ) <EOL> mappings = OrderedDict ( ) <EOL> mappings [ '<STR_LIT>' ] = '<STR_LIT:id>' <EOL> mappings [ '<STR_LIT>' ] = '<STR_LIT>' , { '<STR_LIT>' : '<STR_LIT:M>' , '<STR_LIT>' : '<STR_LIT:F>' } <EOL> mappings [ '<STR_LIT>' ] = '<STR_LIT>' , lambda v : v * <NUM_LIT:12> <EOL> mappings [ '<STR_LIT>' ] = lambda rec : rec . weight / rec . height ** <NUM_LIT:2> <EOL> actual = fieldmap ( table , mappings ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT:M>' , <NUM_LIT:16> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT:M>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) ) <EOL> ieq ( expect , actual ) <EOL> ieq ( expect , actual ) <EOL> def test_fieldmap_empty ( ) : <EOL> table = ( ( '<STR_LIT:foo>' , '<STR_LIT:bar>' ) , ) <EOL> expect = ( ( '<STR_LIT:foo>' , '<STR_LIT>' ) , ) <EOL> mappings = OrderedDict ( ) <EOL> mappings [ '<STR_LIT:foo>' ] = '<STR_LIT:foo>' <EOL> mappings [ '<STR_LIT>' ] = '<STR_LIT:bar>' , lambda v : v * <NUM_LIT:2> <EOL> actual = fieldmap ( table , mappings ) <EOL> ieq ( expect , actual ) <EOL> def test_rowmap ( ) : <EOL> table = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ) <EOL> def rowmapper ( row ) : <EOL> transmf = { '<STR_LIT>' : '<STR_LIT:M>' , '<STR_LIT>' : '<STR_LIT:F>' } <EOL> return [ row [ <NUM_LIT:0> ] , <EOL> transmf [ row [ <NUM_LIT:1> ] ] if row [ <NUM_LIT:1> ] in transmf else row [ <NUM_LIT:1> ] , <EOL> row [ <NUM_LIT:2> ] * <NUM_LIT:12> , <EOL> row [ <NUM_LIT:4> ] / row [ <NUM_LIT:3> ] ** <NUM_LIT:2> ] <EOL> actual = rowmap ( table , rowmapper , header = [ '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT:M>' , <NUM_LIT:16> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT:M>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) ) <EOL> ieq ( expect , actual ) <EOL> ieq ( expect , actual ) <EOL> table2 = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> , <NUM_LIT> ) ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT:M>' , <NUM_LIT:16> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT:M>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) ) <EOL> actual = rowmap ( table2 , rowmapper , header = [ '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> ieq ( expect , actual ) <EOL> def test_rowmap_empty ( ) : <EOL> table = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , ) <EOL> def rowmapper ( row ) : <EOL> transmf = { '<STR_LIT>' : '<STR_LIT:M>' , '<STR_LIT>' : '<STR_LIT:F>' } <EOL> return [ row [ <NUM_LIT:0> ] , <EOL> transmf [ row [ <NUM_LIT:1> ] ] if row [ <NUM_LIT:1> ] in transmf else row [ <NUM_LIT:1> ] , <EOL> row [ <NUM_LIT:2> ] * <NUM_LIT:12> , <EOL> row [ <NUM_LIT:4> ] / row [ <NUM_LIT:3> ] ** <NUM_LIT:2> ] <EOL> actual = rowmap ( table , rowmapper , header = [ '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , ) <EOL> ieq ( expect , actual ) <EOL> def test_recordmap ( ) : <EOL> table = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) ) <EOL> def recmapper ( rec ) : <EOL> transmf = { '<STR_LIT>' : '<STR_LIT:M>' , '<STR_LIT>' : '<STR_LIT:F>' } <EOL> return [ rec [ '<STR_LIT:id>' ] , <EOL> transmf [ rec [ '<STR_LIT>' ] ] if rec [ '<STR_LIT>' ] in transmf else rec [ '<STR_LIT>' ] , <EOL> rec [ '<STR_LIT>' ] * <NUM_LIT:12> , <EOL> rec [ '<STR_LIT>' ] / rec [ '<STR_LIT>' ] ** <NUM_LIT:2> ] <EOL> actual = rowmap ( table , recmapper , header = [ '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT:M>' , <NUM_LIT:16> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT:M>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) ) <EOL> ieq ( expect , actual ) <EOL> ieq ( expect , actual ) <EOL> table2 = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:5> , '<STR_LIT:->' , <NUM_LIT> , <NUM_LIT> ) ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT:M>' , <NUM_LIT:16> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT:F>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT:M>' , <NUM_LIT> * <NUM_LIT:12> , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) ) <EOL> actual = rowmap ( table2 , recmapper , header = [ '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> ieq ( expect , actual ) <EOL> def test_rowmapmany ( ) : <EOL> table = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT:->' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> ) ) <EOL> def rowgenerator ( row ) : <EOL> transmf = { '<STR_LIT>' : '<STR_LIT:M>' , '<STR_LIT>' : '<STR_LIT:F>' } <EOL> yield [ row [ <NUM_LIT:0> ] , '<STR_LIT>' , <EOL> transmf [ row [ <NUM_LIT:1> ] ] if row [ <NUM_LIT:1> ] in transmf else row [ <NUM_LIT:1> ] ] <EOL> yield [ row [ <NUM_LIT:0> ] , '<STR_LIT>' , row [ <NUM_LIT:2> ] * <NUM_LIT:12> ] <EOL> yield [ row [ <NUM_LIT:0> ] , '<STR_LIT>' , row [ <NUM_LIT:4> ] / row [ <NUM_LIT:3> ] ** <NUM_LIT:2> ] <EOL> actual = rowmapmany ( table , rowgenerator , header = [ '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT:value>' ] ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:value>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , '<STR_LIT:M>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> * <NUM_LIT:12> ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , '<STR_LIT:F>' ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> * <NUM_LIT:12> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , '<STR_LIT:->' ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> * <NUM_LIT:12> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , '<STR_LIT:M>' ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> * <NUM_LIT:12> ) ) <EOL> ieq ( expect , actual ) <EOL> ieq ( expect , actual ) <EOL> def test_recordmapmany ( ) : <EOL> table = ( ( '<STR_LIT:id>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT:->' , <NUM_LIT> , <NUM_LIT> , <NUM_LIT> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> , <NUM_LIT> ) ) <EOL> def rowgenerator ( rec ) : <EOL> transmf = { '<STR_LIT>' : '<STR_LIT:M>' , '<STR_LIT>' : '<STR_LIT:F>' } <EOL> yield [ rec [ '<STR_LIT:id>' ] , '<STR_LIT>' , <EOL> transmf [ rec [ '<STR_LIT>' ] ] if rec [ '<STR_LIT>' ] in transmf else rec [ '<STR_LIT>' ] ] <EOL> yield [ rec [ '<STR_LIT:id>' ] , '<STR_LIT>' , rec [ '<STR_LIT>' ] * <NUM_LIT:12> ] <EOL> yield [ rec [ '<STR_LIT:id>' ] , '<STR_LIT>' , rec [ '<STR_LIT>' ] / rec [ '<STR_LIT>' ] ** <NUM_LIT:2> ] <EOL> actual = rowmapmany ( table , rowgenerator , header = [ '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT:value>' ] ) <EOL> expect = ( ( '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:value>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , '<STR_LIT:M>' ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT:16> * <NUM_LIT:12> ) , <EOL> ( <NUM_LIT:1> , '<STR_LIT>' , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , '<STR_LIT:F>' ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> * <NUM_LIT:12> ) , <EOL> ( <NUM_LIT:2> , '<STR_LIT>' , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , '<STR_LIT:->' ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> * <NUM_LIT:12> ) , <EOL> ( <NUM_LIT:3> , '<STR_LIT>' , <NUM_LIT> / <NUM_LIT> ** <NUM_LIT:2> ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , '<STR_LIT:M>' ) , <EOL> ( <NUM_LIT:4> , '<STR_LIT>' , <NUM_LIT> * <NUM_LIT:12> ) ) <EOL> ieq ( expect , actual ) <EOL> ieq ( expect , actual ) </s>
