Given the triangle of consecutive odd numbers:

             1
          3     5
       7     9    11
   13    15    17    19
21    23    25    27    29
...

Calculate the sum of the numbers in the nth row of this triangle (starting at index 1) e.g.: (Input --> Output)

1 -->  1
2 --> 3 + 5 = 8
import "package:test/test.dart";
import "package:solution/solution.dart";

void main() {
  group("basic tests", () {
    test("Testing for 1", () => expect(rowSumOddNumbers(1), equals(1)));
    test("Testing for 2", () => expect(rowSumOddNumbers(2), equals(8)));
    test("Testing for 13", () => expect(rowSumOddNumbers(13), equals(2197)));
    test("Testing for 19", () => expect(rowSumOddNumbers(19), equals(6859)));
    test("Testing for 41", () => expect(rowSumOddNumbers(41), equals(68921)));
    test("Testing for 42", () => expect(rowSumOddNumbers(42), equals(74088)));
    test("Testing for 74", () => expect(rowSumOddNumbers(74), equals(405224)));
    test("Testing for 86", () => expect(rowSumOddNumbers(86), equals(636056)));
    test("Testing for 93", () => expect(rowSumOddNumbers(93), equals(804357)));
    test("Testing for 101", () => expect(rowSumOddNumbers(101), equals(1030301)));
  });
}
import 'dart:math';

int rowSumOddNumbers(int n) {
  List<List<int>> triangle = [];
  
  int rowStart = 1;
  for (int i = 1; i <= n; i++) {
    List<int> row = List<int>.generate(i, (index) => rowStart + 2 * index);
    triangle.add(row);
    rowStart += 2 * i;
  }
  
  return triangle.last.fold(0, (a, b) => a + b);
}
import 'dart:math';
int rowSumOddNumbers(int n) {
  return pow(n, 3);
}
int rowSumOddNumbers(int n) => n * n * n;