Skip to content

Commit

Permalink
Expression support
Browse files Browse the repository at this point in the history
  • Loading branch information
AdRiley committed Mar 6, 2025
1 parent aeda01b commit 16087f9
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import project.Internal.Widget_Helpers
from project.Internal.Filter_Condition_Helpers import make_filter_column

type Duplicate_Rows_Method
Integer_Range from:(Integer | Column_Ref) to:(Integer | Column_Ref) step:Integer=1
Integer_Range from:(Integer | Column_Ref | Expression) to:(Integer | Column_Ref | Expression) step:Integer=1

Date_Range from to step:Integer=1 period:Date_Period

Expand Down
14 changes: 8 additions & 6 deletions distribution/lib/Standard/Table/0.0.0-dev/src/Table.enso
Original file line number Diff line number Diff line change
Expand Up @@ -3782,14 +3782,16 @@ type Table

@over Duplicate_Rows_Method.default_widget
generate_rows self over:Duplicate_Rows_Method =
resolve_to_from value =
case value of
_ : Integer -> self.make_constant_column value
_ : Column_Ref -> (self:Table_Ref).resolve value
_ : Expression -> self.evaluate_expression value ..Report_Warning

x = case over of
Duplicate_Rows_Method.Integer_Range from to step ->
from_column = case from of
_ : Integer -> self.make_constant_column from
_ : Column_Ref -> (self:Table_Ref).resolve from
to_column = case to of
_ : Integer -> self.make_constant_column to
_ : Column_Ref -> (self:Table_Ref).resolve to
from_column = resolve_to_from from
to_column = resolve_to_from to
range_col = from_column.zip to_column f->t->(f.up_to t step=step)
self.set range_col as="generate_rows_id"
x.expand_to_rows "generate_rows_id"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,9 @@ add_offset_specs suite_builder setup =
t4.generate_rows (..Integer_Range (..Name 'Start') (..Name 'Stop') 2) . should_equal ignore_order=setup.is_database
Table.new [["Text Values", ["A", "A", "C", "C"]], ["Start", [1, 1, 2, 2]], ["Stop", [5, 5, 5, 5]], ["generate_rows_id", [1, 3, 2, 4]]]

group_builder.specify "Works with Integer_Range column and expression" <|
t3.generate_rows (..Integer_Range (..Name 'Start') (expr '[Stop]+1')) . should_equal ignore_order=setup.is_database
Table.new [["Text Values", ["A", "A", "A", "B", "C", "C"]], ["Start", [1, 1, 1, 0, 2, 2]], ["Stop", [3, 3, 3, 0, 3, 3]], ["generate_rows_id", [1, 2, 3, 0, 2, 3]]]



0 comments on commit 16087f9

Please sign in to comment.