// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

library dartdoc.model_utils_test;

import 'package:dartdoc/src/model_utils.dart';
import 'package:test/test.dart';

class ValidatingMemoizerUser extends ValidatingMemoizer {
  int foo = 0;
  // These are actually not things you would ordinarily memoize, because
  // they change.  But they are useful for testing.
  List<int> _toMemoize() {
    return [foo++];
  }

  List<int> get toMemoize => memoized(_toMemoize);
}

class MemoizerUser extends Memoizer {
  int foo = 0;
  // These are actually not things you would ordinarily memoize, because
  // they change.  But they are useful for testing.
  int _toMemoize() {
    return foo++;
  }

  int get toMemoize => memoized(_toMemoize);

  String _memoizedParameter1(String param) => "${foo++} ${param}";
  String memoizedParameter1(String param) =>
      memoized1(_memoizedParameter1, param);

  String _memoizedParameter2(String param, String param2) =>
      "${foo++} ${param} ${param2}";
  String memoizedParameter2(String param, String param2) =>
      memoized2(_memoizedParameter2, param, param2);

  String _memoizedParameter3(String param, String param2, String param3) =>
      "${foo++} ${param} ${param2} ${param3}";
  String memoizedParameter3(String param, String param2, String param3) =>
      memoized3(_memoizedParameter3, param, param2, param3);

  String _memoizedParameter4(
          String param, String param2, String param3, String param4) =>
      "${foo++} ${param} ${param2} ${param3} ${param4}";
  String memoizedParameter4(
          String param, String param2, String param3, String param4) =>
      memoized4(_memoizedParameter4, param, param2, param3, param4);

  String _memoizedParameter5(String param, String param2, String param3,
          String param4, String param5) =>
      "${foo++} ${param} ${param2} ${param3} ${param4} ${param5}";
  String memoizedParameter5(String param, String param2, String param3,
          String param4, String param5) =>
      memoized5(_memoizedParameter5, param, param2, param3, param4, param5);

  String _memoizedParameter6(String param, String param2, String param3,
          String param4, String param5, String param6) =>
      "${foo++} ${param} ${param2} ${param3} ${param4} ${param5} ${param6}";
  String memoizedParameter6(String param, String param2, String param3,
          String param4, String param5, String param6) =>
      memoized6(
          _memoizedParameter6, param, param2, param3, param4, param5, param6);

  String _memoizedParameter7(String param, String param2, String param3,
          String param4, String param5, String param6, String param7) =>
      "${foo++} ${param} ${param2} ${param3} ${param4} ${param5} ${param6} ${param7}";
  String memoizedParameter7(String param, String param2, String param3,
          String param4, String param5, String param6, String param7) =>
      memoized7(_memoizedParameter7, param, param2, param3, param4, param5,
          param6, param7);

  String _memoizedParameter8(
          String param,
          String param2,
          String param3,
          String param4,
          String param5,
          String param6,
          String param7,
          String param8) =>
      "${foo++} ${param} ${param2} ${param3} ${param4} ${param5} ${param6} ${param7} ${param8}";
  String memoizedParameter8(
          String param,
          String param2,
          String param3,
          String param4,
          String param5,
          String param6,
          String param7,
          String param8) =>
      memoized8(_memoizedParameter8, param, param2, param3, param4, param5,
          param6, param7, param8);
}

void main() {
  group('model_utils stripIndentFromSource', () {
    test('no indent', () {
      expect(stripIndentFromSource('void foo() {\n  print(1);\n}\n'),
          'void foo() {\n  print(1);\n}\n');
    });

    test('same indent', () {
      expect(stripIndentFromSource('  void foo() {\n    print(1);\n  }\n'),
          'void foo() {\n  print(1);\n}\n');
    });

    test('odd indent', () {
      expect(stripIndentFromSource('   void foo() {\n     print(1);\n   }\n'),
          'void foo() {\n  print(1);\n}\n');
    });
  });

  group('model_utils stripDartdocCommentsFromSource', () {
    test('no comments', () {
      expect(stripDartdocCommentsFromSource('void foo() {\n  print(1);\n}\n'),
          'void foo() {\n  print(1);\n}\n');
    });

    test('line comments', () {
      expect(
          stripDartdocCommentsFromSource(
              '/// foo comment\nvoid foo() {\n  print(1);\n}\n'),
          'void foo() {\n  print(1);\n}\n');
    });

    test('block comments 1', () {
      expect(
          stripDartdocCommentsFromSource(
              '/** foo comment */\nvoid foo() {\n  print(1);\n}\n'),
          'void foo() {\n  print(1);\n}\n');
    });

    test('block comments 2', () {
      expect(
          stripDartdocCommentsFromSource(
              '/**\n * foo comment\n */\nvoid foo() {\n  print(1);\n}\n'),
          'void foo() {\n  print(1);\n}\n');
    });
  });

  group('model_utils ValidatingMemoizer', () {
    test('assert on changing underlying function', () {
      var m = new ValidatingMemoizerUser();
      expect(m.toMemoize.first, equals(0));
      expect(() => m.toMemoize, throwsA(new isInstanceOf<AssertionError>()));
    });
  });

  group('model_utils Memoizer', () {
    test('basic memoization and invalidation', () {
      var m = new MemoizerUser();
      expect(m.toMemoize, equals(0), reason: "initialization problem");
      expect(m.toMemoize, equals(0), reason: "failed to memoize");
      m.invalidateMemos();
      expect(m.toMemoize, equals(1), reason: "failed to invalidate");
    });

    test('memoization of a method with parameter', () {
      var m = new MemoizerUser();
      expect(m.memoizedParameter1("hello"), equals("0 hello"),
          reason: "initialization problem");
      expect(m.memoizedParameter1("hello"), equals("0 hello"),
          reason: "failed to memoize");
      expect(m.memoizedParameter1("goodbye"), equals("1 goodbye"));
      expect(m.memoizedParameter1("something"), equals("2 something"));
      m.invalidateMemos();
      expect(m.memoizedParameter1("hello"), equals("3 hello"),
          reason: "failed to invalidate");
    });

    test('memoization of many parameters', () {
      var m = new MemoizerUser();
      expect(m.memoizedParameter1("hello"), equals("0 hello"));
      expect(m.memoizedParameter2("hello", "obi"), equals("1 hello obi"));
      expect(m.memoizedParameter3("hello", "obi", "wan"),
          equals("2 hello obi wan"));
      expect(m.memoizedParameter4("hello", "obi", "wan", "how"),
          equals("3 hello obi wan how"));
      expect(m.memoizedParameter5("hello", "obi", "wan", "how", "are"),
          equals("4 hello obi wan how are"));
      expect(m.memoizedParameter6("hello", "obi", "wan", "how", "are", "you"),
          equals("5 hello obi wan how are you"));
      expect(
          m.memoizedParameter7(
              "hello", "obi", "wan", "how", "are", "you", "doing"),
          equals("6 hello obi wan how are you doing"));
      expect(
          m.memoizedParameter8(
              "hello", "obi", "wan", "how", "are", "you", "doing", "today"),
          equals("7 hello obi wan how are you doing today"));
      expect(m.memoizedParameter1("hello"), equals("0 hello"));
      expect(m.memoizedParameter2("hello", "obi"), equals("1 hello obi"));
      expect(m.memoizedParameter3("hello", "obi", "wan"),
          equals("2 hello obi wan"));
      expect(m.memoizedParameter4("hello", "obi", "wan", "how"),
          equals("3 hello obi wan how"));
      expect(m.memoizedParameter5("hello", "obi", "wan", "how", "are"),
          equals("4 hello obi wan how are"));
      expect(m.memoizedParameter6("hello", "obi", "wan", "how", "are", "you"),
          equals("5 hello obi wan how are you"));
      expect(
          m.memoizedParameter7(
              "hello", "obi", "wan", "how", "are", "you", "doing"),
          equals("6 hello obi wan how are you doing"));
      expect(
          m.memoizedParameter8(
              "hello", "obi", "wan", "how", "are", "you", "doing", "today"),
          equals("7 hello obi wan how are you doing today"));
    });
  });
}
