github.com/igggame/nebulas-go@v2.1.0+incompatible/nf/nvm/test/contract_rectangle.js (about)

     1  // Copyright (C) 2017 go-nebulas authors
     2  //
     3  // This file is part of the go-nebulas library.
     4  //
     5  // the go-nebulas library is free software: you can redistribute it and/or modify
     6  // it under the terms of the GNU General Public License as published by
     7  // the Free Software Foundation, either version 3 of the License, or
     8  // (at your option) any later version.
     9  //
    10  // the go-nebulas library is distributed in the hope that it will be useful,
    11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    13  // GNU General Public License for more details.
    14  //
    15  // You should have received a copy of the GNU General Public License
    16  // along with the go-nebulas library.  If not, see <http://www.gnu.org/licenses/>.
    17  //
    18  
    19  class Rectangle {
    20      constructor() {
    21          LocalContractStorage.defineProperties(this, {
    22              height: null,
    23              width: null,
    24          });
    25      }
    26  
    27      // init.
    28      init(height, width) {
    29          this.height = height;
    30          this.width = width;
    31      }
    32  
    33      calcArea() {
    34          return this.height * this.width;
    35      }
    36  
    37      verify(expected) {
    38          let area = this.calcArea();
    39          if (expected != area) {
    40              throw new Error("Error: expected " + expected + ", actual is " + area + ".");
    41          }
    42      }
    43  }
    44  
    45  module.exports = Rectangle;