рдЬрд╛рд╡рд╛ рдореЗрдВ рд╣реИрдорд░реЗрд╕реНрдЯ рдХреЗ рд╕рд╛рде рд╕рд╛рд░рдгреАрдмрджреНрдз рдбреЗрдЯрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг

рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦрдиреЗ рдХреЗ рджреМрд░рд╛рди, рдореБрдЭреЗ рдЕрдХреНрд╕рд░ рд╡рд┐рднрд┐рдиреНрди рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рд╢реБрджреНрдзрддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреА рд╣реЛрддреА рдереАред рдЯреЗрдмрд▓реНрд╕ рд╡реЗрдм рдкреЗрдЬ, рдбреЗрдЯрд╛рдмреЗрд╕ рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХреНрд╕реЗрд▓ рдлрд╛рдЗрд▓ рдкрд░ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛ рдХрд┐ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рджрд┐рдП рдЧрдП рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ, рдЕрд░реНрдерд╛рддреН, рдкрд░реАрдХреНрд╖рдг рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИред

рдпрд╣ рдкреЛрд╕реНрдЯ рд╣реИрдорд░реЗрд╕реНрдЯ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдХреНрдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЪреЗрдХ рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИред

рдкрд╣рд▓реЗ рддреЛ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдерд╛ред

рдЯрд╛рдЗрдк рдЬрд╛рдВрдЪреЗрдВ: рдХреЙрд▓рдо "рд╕реИрд▓рд░реА" рдореЗрдВ, 15 рд╡реАрдВ рдкрдВрдХреНрддрд┐ рдореЗрдВ, "рдорд┐рд▓рд┐рдпрди" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рддрд░реАрдХрд╛ рдерд╛, рдЗрд╕ рддрд░рд╣ рд╕реЗ: assertCellByColumnAndRowNumber , рдЬрд┐рд╕реЗ рдпрд╣рд╛рдБ рдФрд░ рд╡рд╣рд╛рдБ рдХреА рдирд┐рдпрдорд┐рддрддрд╛ рдХреЗ рд╕рд╛рде рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рддрдм рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛, рдФрд░ рдкрдВрдХреНрддрд┐ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдЬрд╛рдВрдЪрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛: "рдирд╛рдо" "рд╡рд╛рд╕рд┐рд▓реА рдЗрд╡рд╛рдиреЛрд╡рд┐рдЪ" рдХреЗ рдХреЙрд▓рдо "рд╡реЗрддрди" рдореЗрдВ "рдорд┐рд▓рд┐рдпрди" рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдареАрдХ рд╣реИ, assertCellByColumnAndPrimaryKey рд╡рд┐рдзрд┐ рдХрд╛ рдЬрдиреНрдо рд╣реБрдЖ рдерд╛, рдФрд░ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдпрд╣ рдПрдХ рд╕реНрдерд╛рди рдкрд░ рдкреИрджрд╛ рдирд╣реАрдВ рд╣реБрдЖ рдерд╛ред

рдлрд┐рд░ рдРрд╕реЗ рд╕реНрдерд╛рди рдереЗ рдЬрд╣рд╛рдВ рдкреНрд░рд╛рдердорд┐рдХ рдХреБрдВрдЬреА рд╕рдордЧреНрд░ рдереАред рд╕рдордЧреНрд░ рдХреБрдВрдЬреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдиреЗ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдФрд░ рднреА рдЕрдзрд┐рдХ рдорд╛рди рд▓реЗрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛ рдЧрдпрд╛ред

рдореИрдВрдиреЗ рдЙрд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрдм рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдерд╛: рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд╣рд╛рдВ "рд╕реНрдерд┐рддрд┐" "рдареАрдХ" рд╣реИ, рдХреЙрд▓рдо "рдкреНрд░рдХрд╛рд░" рдореЗрдВ рдКрдкрд░ рд╕реЗ рдиреАрдЪреЗ рддрдХ рдХреНрд░рдо рдореЗрдВ "рдП, рдмреА, рд╕реА" рдореВрд▓реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рдмрд╣реБрдд рд▓рдВрдмреЗ рдирд╛рдо рдФрд░ рдЪрд░ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рд╡рд┐рдзрд┐ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рд╕рдордЭрдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рдирд╣реАрдВ рд░реБрдХреЗрдЧрд╛, рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реЛрдВрдЧреА, рдФрд░ рд▓реЗрдЦрди рдФрд░ рд╕рдорд░реНрдерди рдкрд░реАрдХреНрд╖рдг рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛ рдЬрд╛рдПрдВрдЧреЗред

рдЗрд╕рд▓рд┐рдП, рдореИрдВрдиреЗ рдПрдХреАрдХреГрдд рд░реВрдк рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрдорд░реЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдФрд░ рдЕрдВрдд рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдпрд╛ред

рдореИрдВ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХреЙрд▓рдо рдХреЗ рд▓рд┐рдП рдЪреЗрдХ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣рд╛:
 assertThat( table, column("Type",contains("A","B","C")).where(cell("Status", is("Ok"))) ); 

рдЕрдм рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХред

table рдХреЛ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ( class Table extends Collection<Row> )

рдРрд╕реА рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рддреНрдпрд╛рдкрди рдХреЛ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╣реИрдорд░реЗрд╕реНрдЯ рдореИрдЪрд░реНрд╕ рдмрдирд╛рдП рдЬреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдпрд╛ рд╕рдВрдкреВрд░реНрдг рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рд╢рд░реНрдд рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдм рддрдХ, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЦрд┐рд▓рд╛рдбрд╝реА рдореЗрд░реЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдереЗ:
  1. CellMatcher рдПрдХ рдкрдВрдХреНрддрд┐ рд╕реЗрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд░реНрдд рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
    рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
     cell("Id", greaterThan(0)) 
    рдпрджрд┐ рдХреЙрд▓рдо "Id" рдореЗрдВ рдорд╛рди 0 рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рдПрдХ рдкрдВрдХреНрддрд┐ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗред

    рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдорд┐рд▓рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЙрд▓рдо рдФрд░ рдХрд┐рд╕реА рднреА "рдорд╛рдирдХ" рд╣реИрдорд░реЗрд╕реНрдЯ рдореИрдЪреНрдЯрд░ рдХрд╛ рдирд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЗрд╕ рдХреЙрд▓рдо рдореЗрдВ рдореВрд▓реНрдп рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдЧрд╛ред

    рдЗрд╕ рдЧреЗрдорд░ рдФрд░ рдорд╛рдирдХ рд╕рдВрдЧреНрд░рд╣ рдЧреЗрдорд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдкреВрд░реА рдореЗрдЬ рдкрд░ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рд░рд┐рдХреЙрд░реНрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

    рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рдкреБрд╕реНрддрдХрд╛рд▓рдп" everyItem рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдЬреЛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдирд┐рдпрдо рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ (рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкрдВрдХреНрддрд┐) рдХреА рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
    рддрд╛рд▓рд┐рдХрд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдореЗрдВ, Id рдорд╛рди рд╢реВрдиреНрдп рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ рдФрд░ рд╕рдордп рд░рд┐рдХреНрдд рдирд╣реАрдВ рд╣реИ ( null рдирд╣реАрдВ рд╣реИ):
     everyItem(both(cell("Id", greaterThan(0))).and(cell("Time", notNullValue()))) 
    рдФрд░ CombinableMatcher рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ CombinableMatcher , рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдФрд░ рднреА рдЖрд╕рд╛рди рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ - рджреЛрдиреЛрдВ рд╢рдмреНрдж рдХреЗ рдмрд┐рдирд╛:
     everyItem(cell("Id", greaterThan(0)).and(cell("Time", notNullValue())))) 

  2. FilterMatcher - рдПрдХ рдореИрдЪ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рд╢реЗрд╖ рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рджреВрд╕рд░рд╛ рдорд┐рд▓рд╛рди рдХрд░рддрд╛ рд╣реИред

    рдкрд╣рд▓реЗ рдореИрдЪрд░ (рдлрд┐рд▓реНрдЯрд░) рдХреЗ рд░реВрдк рдореЗрдВ, CellMatcher , рдпрд╛ рдХрдИ CellMatcher рдХреЗ рд╕рдВрдШ рдХрд╛ CellMatcher ред
    FilterMatcher рдХрд╛ рдЙрдкрдпреЛрдЧ FilterMatcher рдЖрдк рдЗрд╕ рддрд░рд╣ рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
     where(cell("Id",greaterThan(0)),everyItem(cell("Time",notNullValue()))) 
    рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╕рднреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЬрд╣рд╛рдБ Id> 0 рд╣реИ, рд╕рдордп рдЦрд╛рд▓реА рдирд╣реАрдВ рд╣реИ ( null рдирд╣реАрдВ рд╣реИ)ред рдЬрд╣рд╛рдБ Id 0 рдпрд╛ рдирдХрд╛рд░рд╛рддреНрдордХ рд╣реИ, рд╕рдордп рдкрд┐рдЫрд▓реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╡рд┐рдкрд░реАрдд рдЦрд╛рд▓реА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

  3. рдХреЙрд▓рдо рдХреЗ рдПрдХ рдХреЙрд▓рдо рдХреЗ рд╕рднреА рдорд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП ColumnMatcher рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
    рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
     column("Action", contains("Active", "Pause", "Active", "Closed")) 
    рдЙрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕реНрдерд┐рддрд┐ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, "рдХрд╛рд░реНрд░рд╡рд╛рдИ" рдХреЙрд▓рдо рдореЗрдВ рдХреНрд░рдо рдореЗрдВ рдорд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: "рд╕рдХреНрд░рд┐рдп", "рд░реЛрдХреЗрдВ", "рд╕рдХреНрд░рд┐рдп", "рдмрдВрдж"ред
    рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдорд╛рдирдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА contains рдЖрдк рд╕рдВрдЧреНрд░рд╣ рдкрд░ рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдорд┐рд▓рд╛рдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдХреЙрд▓рдо рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдПрдХ рдЖрдпрд╛рдореА рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЬреИрд╕реЗ рдХрд┐ containsInAnyOrder, hasItem рдФрд░ рдЕрдиреНрдп containsInAnyOrder, hasItem рд╣реИрдВред

    рдмреЗрд╢рдХ, рдЖрдк рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:
     column("Action", contains("Active", "Closed")).where(cell("Id",greaterThan(2))) 
    рдЗрд╕рд▓рд┐рдП рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ 2 рд╕реЗ рдЕрдзрд┐рдХ рдЖрдИрдбреА рд╡рд╛рд▓реА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХреНрд╢рди рдХреЙрд▓рдо рдореЗрдВ рдореВрд▓реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: "рд╕рдХреНрд░рд┐рдп", "рдмрдВрдж"ред

    ColumnMatcher рдЖрдкрдХреЛ рдХреЙрд▓рдо рдкрд░ рдиреНрдпреВрдирддрдо, рдиреНрдпреВрдирддрдо, рдЕрдзрд┐рдХрддрдо рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд▓рд┐рдП рд╢рд░реНрддреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдореБрдЪреНрдЪрдп ColumnMatcher рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
     column("Salary", sum(is(100000))).where(cell("Type",is("fulltime"))) 
    рдЖрдкрдХреЛ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рдкреВрд░реНрдгрдХрд╛рд▓рд┐рдХ рд╡реЗрддрди рдХреА рд░рд╛рд╢рд┐ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

  4. ColumnsMatcher рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдХрдИ рд╕реНрддрдВрднреЛрдВ рдХреЛ рдХрд╛рдЯрдиреЗ рдФрд░ рдкрд░рд┐рдгрд╛рдореА рджреЛ-рдЖрдпрд╛рдореА рдбреЗрдЯрд╛ рд╕рд░рдгреА рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
     sliced(byColumns("Action", "Time"), contains(row("Pause", "12:00"), row("Active", "12:30"), row("Closed", "14:00"))) .where(<some condition>) 
    рдпрд╣рд╛рдВ, рд╕рдВрдкреВрд░реНрдг рд╕реЗ рдЪрдпрдирд┐рдд, рд╕рдВрднрд╡рддрдГ рдмрд╣реБрдд рдмрдбрд╝реА, рддрд╛рд▓рд┐рдХрд╛, рдХреЗрд╡рд▓ рдХреЙрд▓рдо "рдПрдХреНрд╢рди" рдФрд░ "рдЯрд╛рдЗрдо", рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рд╡реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╛рди рд░рдЦрддреЗ рд╣реИрдВред

  5. рдХреНрдпреЛрдВрдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдПрдХ рдорд╛рдирдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИ, рд╣рдо рдЗрд╕рдХреА рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП: not(empty()),iterableWithSize(lessThan(10)) рдорд╛рдирдХ рд╣реИрдорд░реЗрд╕реНрдЯ рдореИрдЪрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдПрдХ рдмрд╛рдЗрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рди рдХрд░реЗрдВред

рдорд╛рдЪрд┐рд╕ рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдПрдХ-рдбреЗрдврд╝ рджрд┐рди рдХрд╛ рд╕рдордп рд▓рдЧрд╛ рдФрд░ рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд░реЛрдЪрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдереА, рдЬрд┐рд╕рдиреЗ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдореЗрдВ рдПрдХ рдЙрддреНрдХреГрд╖реНрдЯ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ред рдореБрдЭреЗ рдХрдИ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк, рдбрд┐рдЬрд╛рдЗрди рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдкрдбрд╝реЗ, рдЬреЛ рдЗрд╕ рд╕рдордп рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд░рд╣реЗ рдереЗ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ?

рд╕рдВрднрд╡рддрдГ, рдпрд╣ рдкреНрд░рддрд┐ рдкрдВрдХреНрддрд┐ рдХреЛрдб рдХреА рд╡рд╛рд╕реНрддреБ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдбреЗрдврд╝ рджрд┐рди рд╕рдмрд╕реЗ рдЕрдореАрд░ рдерд╛, рдЬреЛ рдХрд┐ 15 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд╕реЗ рдХрдо рд╣реЛ рдЧрдпрд╛ рдерд╛ред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдорд┐рдиреАрдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд┐рдХрд▓рд╛, рдЬрд┐рд╕рдореЗрдВ рдХрдИ рд░реАрдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдЪрдХреНрд░, рдФрд░ рдбрд┐рдЬрд╝рд╛рдЗрди рдкрд░рд┐рд╡рд░реНрддрди рдЬреЛ рд▓рд┐рдЦрд┐рдд рдореИрдЪрд░реНрд╕ рдХреЗ рд▓реЗрдЦрди рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рджреМрд░рд╛рди рдЖрд╡рд╢реНрдпрдХ рдереЗред рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЬреАрд╡рди рдореЗрдВ рдкрд╣рд▓реА рдмрд╛рд░ рдЯреАрдбреАрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рдЫреЛрдЯреА рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рднреА рд▓рд┐рдЦрд╛ рдерд╛ред

рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рд╢реБрд░реБрдЖрддреА рдпрд╛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рд╛рдХреНрд╖рд╛рддреНрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рд╖рдп (рдЬреЛ рдореБрдЭреЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рдХрд░рдирд╛ рд╣реИ) рджреНрд╡рд╛рд░рд╛ рд╡рд╛рд╕реНрддреБрд╡рд┐рджреНрдпрд╛ рдХреА "рд╡рд╛рд╕реНрддреБрд╡рд┐рджреНрдпрд╛" рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЯреАрдбреАрдбреА (рдФрд░ рдЕрдиреНрдп рдкреНрд░рдерд╛рдУрдВ) рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрдХреНрд╕рд░ рдЙрдореНрдореАрджрд╡рд╛рд░ рдХреЛ рдЬрд╡рд╛рдм рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП "рдбрд┐рдЬрд╛рдЗрди" рдХреНрд╖рдорддрд╛рдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рддрд╛ рд╣реИред рд╕рд╡рд╛рд▓ рдпрд╣ рд╣реИ рдХрд┐ рд╕реАрд╡рд░ рдореИрдирд╣реЛрд▓ рдЧреЛрд▓ рдХреНрдпреЛрдВ рд╣реИрдВред (рд╕рд┐рд░реНрдл рдордЬрд╛рдХ рдХрд░рддреЗ рд╣реБрдП, рдореИрдВ рдЙрд╕реЗ, рдФрд░ рдЖрдкрд╕реЗ рдХрднреА рдирд╣реАрдВ рдкреВрдЫрддрд╛?)ред

рдирд┐рд╖реНрдХрд░реНрд╖:
рд╡рд░реНрдгрд┐рдд рддрд╛рд▓рд┐рдХрд╛ рдорд┐рд▓рд╛рдирдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЕрдиреБрдорддрд┐ рджреА:рдЫрд╡рд┐

Source: https://habr.com/ru/post/In150368/


All Articles